[請益] 這算是php函式的bug嗎??

看板PHP作者 (好耶,好運還沒走!)時間14年前 (2011/03/01 11:57), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/2 (看更多)
有一日期為: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

03/01 12:11, , 1F
呃, 並沒有民國100年2月29日這種東西啊...
03/01 12:11, 1F

03/01 12:11, , 2F
所以 php 會認為你要的是2月28日的隔天也就是3月1日...
03/01 12:11, 2F

03/01 12:12, , 3F
看你需要的跳六個月的要求是怎樣再來問解法
03/01 12:12, 3F

03/01 13:22, , 4F
這不是 bug, 輸給函式的值是錯的
03/01 13:22, 4F

03/01 13:31, , 5F
月份加上去後用 checkdate 檢查, 不對自己從天那邊扣
03/01 13:31, 5F

03/01 13:31, , 6F
(月份超過 12 進位到年)
03/01 13:31, 6F

03/02 02:12, , 7F
用秒數算如何? strtotime('2010/08/31') + 86400*180
03/02 02:12, 7F
文章代碼(AID): #1DR6wzLk (PHP)
討論串 (同標題文章)
文章代碼(AID): #1DR6wzLk (PHP)