作者liyih ()
看板Perl
标题Re: [问题] 日期的加减法?
时间Wed Aug 19 20:32:29 2009
※ 引述《tumc (HIHIHI)》之铭言:
: 请问大家,日期可以做加减法吗
: 比如如果我要固定得到 前天的日期
: 该如何得到呢?
: 因为不同的月有不同的天数,有又闰年的问题...
: 有没有模组可以处厘这个问题呢?
: 最好能有个函数是执行: 今日-2 = 前天
可以试着用 DateTime 这个模组,add、subtract、truncate 几个常用的函数。
http://search.cpan.org/~drolsky/DateTime-0.50/lib/DateTime.pm
如 2008/02/01 00:00:00 加上 29 天为 2008/03/01 00:00:00。
February 2008
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
epoch
2008-2-1 0:0, 1201795200
2008-3-1 0:0, 1204300800
------------------------
86400 * 29
#
use DateTime;
my $dt;
$dt = DateTime->new( year => 2008,
month => 2,
day => 1,
time_zone => 'Asia/Taipei');
printf("%s-%s-%s %s:%s, %s\n", $dt->year,
$dt->month,
$dt->day,
$dt->hour,
$dt->minute,
$dt->epoch);
$dt->add( days => 29);
printf("%s-%s-%s %s:%s, %s\n", $dt->year,
$dt->month,
$dt->day,
$dt->hour,
$dt->minute,
$dt->epoch);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.201.74
※ 编辑: liyih 来自: 59.104.201.74 (08/19 20:32)