作者sivle01 (好耶,好運還沒走!)
看板PHP
標題[請益] 這算是php函式的bug嗎??
時間Tue Mar 1 11:57:46 2011
有一日期為:099/08/31
切開用下面的方法來跳六個月
$tmp_day = date ("Y/m/d", mktime (0,0,0,$MM+6,$DD,$YY));
得到的會是 100/03/03,而不是100/02/28
測試:
如果是:099/08/28 會得到 100/02/28
如果是:099/08/29 會得到 100/03/01
這算是bug嗎??
是否有其它方法可以來跳6個月呢??
若用天數來跳,變成還要多算一次30*n+31*m 有點麻煩
謝謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.30.14.18
1F:推 LPH66:呃, 並沒有民國100年2月29日這種東西啊... 03/01 12:11
2F:→ LPH66:所以 php 會認為你要的是2月28日的隔天也就是3月1日... 03/01 12:11
3F:→ LPH66:看你需要的跳六個月的要求是怎樣再來問解法 03/01 12:12
4F:→ danielguo:這不是 bug, 輸給函式的值是錯的 03/01 13:22
5F:→ danielguo:月份加上去後用 checkdate 檢查, 不對自己從天那邊扣 03/01 13:31
6F:→ danielguo:(月份超過 12 進位到年) 03/01 13:31
7F:→ mesak:用秒數算如何? strtotime('2010/08/31') + 86400*180 03/02 02:12