$beginMon=strtotime("-1weekMonday");$endMon=strtotime("-1weekTuesday")-1;echodate("Y-m-dH:i:s",$beginMon);echo('');echodate("Y-m-dH:i:s",$endMon);echo("");//上面是获取本周一的开始与结束时间戳//结果如下://2015-01-0500:00:00(错误)//2014-12-2923:59:59(正确)$beginSun=strtotime("+0weekSunday");$endSun=strtotime("+1weekMonday")-1;echodate("Y-m-dH:i:s",$beginSun)."";echodate("Y-m-dH:i:s",$endSun)."";//上面获取的是本周末的开始与结束时间戳//结果如下://2015-01-0400:00:00//2015-01-1123:59:59(错误)//以上案例都是在今天测试(非周末因为周末)
2 回答
梦里花落0921
TA贡献1772条经验 获得超5个赞
你可以通过阅读相关实现源码来理解为什么会有这样的结果:php_date.c和parse_date.c。另外还可以阅读官方文档和常用时期处理参考来看看如何实践。每星期的七天,'sunday'|'monday'|'tuesday'|'wednesday'|'thursday'|'friday'|'saturday'|'sun'|'mon'|'tue'|'wed'|'thu'|'fri'|'sat'|'sun'应该是以当前时间往后推7*24小时来考量的。本例中,如果你想特指本周的某个星期一,你可以使用strtotime("-1weekMondaythisweek");,其它的天,类似地,指定是在哪个自然周内(本例即thisweek指定为本自然周),不要让系统自己按自己默认的逻辑处理即可。注意:回答问题时是周二。
紫衣仙女
TA贡献1839条经验 获得超15个赞
这个并不是bug,php的官方手册中其实就提到过与之类似的一些情况。有些情况下出现strtotime("1months")并不是下个月,而是下下个月了。具体可以翻一下文档手册.就知道为什么这么处理了。
添加回答
举报
0/150
提交
取消