[Perl] Convertir fecha a timestramp RESUELTO
Gunnar Wolf
gwolf en gwolf.org
Dom Dic 11 09:54:42 CST 2005
Rafael Marques Parra dijo [Fri, Dec 09, 2005 at 03:55:06PM +0000]:
> use Time::Local;
>
> my $date1 = "2005-12-05";
> my $date2 = "2005-09-20";
> my ( $year1,$month1,$day1 ) = split( /-/, $date1 );
> my ( $year2,$month2,$day2 ) = split( /-/, $date2 );
>
> my $first_date = timelocal( "00","00","00",$day1,$month1 - 1,$year1 );
> my $second_date = timelocal( "00","00","00",$day2,$month2 - 1,$year2 );
>
> my $s = $first_date - $second_date;
> my $dif = int( $s / 86400 );
> $dif -= '1';
> my @i = ( 1 .. $dif );
>
> Y asi pude obtener la diferencia entre dias de las dos fechas.
Ouch! :) :)
Yo haría algo así:
use Date::Calc qw(Delta_Days);
@fecha1 = (2005,12,5);
@fecha2 = (2005,9,20);
$days = Delta_Days(@fecha1, @fecha2);
print "Son $days días";
Resultado: Son -76 días
Pero, sí, es válido ;-)
--
Gunnar Wolf - gwolf en gwolf.org - (+52-55)1451-2244 / 5623-0154
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF
Más información sobre la lista de distribución Perl