2010-10-17 2 views

risposta

11

È possibile utilizzare DateTime e DateTime :: Durata

http://search.cpan.org/dist/DateTime/lib/DateTime/Duration.pm

o lavorare con timestamp unix:

my $now = time(); 
my $threeDaysAgo = $now - 3 * 86400; 
my ($day, $mon, $year) = (localtime($threeDaysAgo))[3, 4, 5]; 
printf("Three days ago was %04d-%02d-%02d", $year+1900, $mon+1, $day); 
+3

che non hanno nemmeno bisogno di preoccuparsi di DateTime :: stessa durata per un sacco di manipolazione data, ad esempio, '$ three_days_ago = DateTime-> now() -> sottrarre (days => 3)' – plusplus

+0

L'unica cosa da fare attenzione, usando DateTime, è di minimizzare il numero di oggetti DateTime istanziati (potrebbe richiedere molto tempo per allocare e distruggere). Riutilizzare il più spesso possibile. –

5

Ci sono molti, molti moduli di manipolazione di data e ora differenti.

Questi includono:

Tutti questi sono ben pensato. Ce ne sono molti altri in aggiunta. Molto dipende dal tipo di aritmetica che vuoi fare. DateTime è forse il più rigoroso, ma Date :: Calc e Date :: Manip possono essere più facili da gestire per il lavoro che ti serve.

0

Questo è di gran lunga il modulo con la massima funzionalità che ho incontrato: Date::Manip