作者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