※ 引述《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)
討論串 (同標題文章)