9

在 Perl 中进行日期算术的推荐方法是什么?

例如,我想知道从今天开始三天前的日期(其中today=2010-10-17today - 3 days= 2010-10-13)。你会如何在 Perl 中做到这一点?

4

4 回答 4

12

您可以使用 DateTime 和 DateTime::Duration

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);
于 2010-10-17T18:11:09.080 回答
6

请参阅CPAN 上的 DateTime(或此处)。

于 2010-10-17T18:10:27.920 回答
5

有很多很多不同的日期和时间操作模块。

这些包括:

所有这些都经过深思熟虑。除此之外还有很多其他的。很大程度上取决于您想要做的算术类型。DateTime 可能是最严格的,但 Date::Calc 和 Date::Manip 对于您需要的工作可能更容易处理。

于 2010-10-17T18:16:01.460 回答
0

这是迄今为止我遇到的功能最多的模块: Date::Manip

于 2010-10-17T18:16:57.760 回答