2010-10-17 4 views

ответ

11

Вы можете использовать DateTime и DateTime :: Продолжительность

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

Или работать с 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

вам даже не нужно возиться с DateTime :: Продолжительность себя для многих дат манипуляций, например, '$ three_days_ago = DateTime-> now() -> subtract (days => 3)' – plusplus

+0

Единственное, что следует позаботиться, используя DateTime, - это минимизировать количество объектов DateTime, которые вы создаете (может потребоваться довольно много времени для выделения и уничтожить). Повторно используйте как можно чаще. –

5

Есть много, много разных даты и времени модули манипуляции.

К ним относятся:

Все они хорошо думали. Есть и другие. Многое зависит от той арифметики, которую вы хотите сделать. DateTime, пожалуй, самый строгий, но Date :: Calc и Date :: Manip могут быть проще обрабатывать для работы, в которой вы нуждаетесь.

0

Это, безусловно, модуль с большей функциональностью, что я сталкивался: Date::Manip

Смежные вопросы