[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