Re: [問題] 日期的加減法?
※ 引述《tumc (HIHIHI)》之銘言:
: 請問大家,日期可以做加減法嗎
: 比如如果我要固定得到 前天的日期
: 該如何得到呢?
: 因為不同的月有不同的天數,有又閏年的問題...
: 有沒有模組可以處厘這個問題呢?
: 最好能有個函數是執行: 今日-2 = 前天
DateTime / DateTime::Tiny 這兩個 CPAN 模組都是最正確的選擇。
需要「甜」一點的話可以用 autobox::DateTime::Duration :
$d = 2->days->ago;
這樣寫法可以讓 $d 是表示「兩天前」的 DateTime 物件。
如果都不能用 CPAN 模組的話,自已手動減也很容易:
# 先取得 2 天前此時的 timestamp
$t = time - 86400 * 2;
# 直接印出來
print localtime($t);
# 只取年、月、日三個值
($mday, $month, $year) = (localtime($t))[3, 4, 5];
不過最麻煩的是時區處理,只要一有這個需要我一定直接用 DateTime。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 121.254.78.40
討論串 (同標題文章)