[英]php date & strtotime
可能我做错了什么,但我看不出它的重点......
今天是一周中的一天。 我必须知道 - 从上个星期一到今天已经过了多少天?
$date_1d = date('Y-m-d', strtotime ('last Monday'));
// last monday
$date_today = date('Y-m-d');
// actual date, today
$ile_dni = (strtotime($date_today) - strtotime($date_1d)) / (60*60*24);
// difference in days - how many days have elapsed from today to last monday
我在同一台服务器上的同一目录中有2个与上述相同的脚本
first said:
&date_1d = > 2012-03-19
$date_today => 2012-03-26
strtotime($date_today) = > 1332720000
strtotime($date_1d) = > 1332115200
$ile_dni = > 7
second said:
&date_1d = > 2012-03-19
$date_today => 2012-03-26
strtotime($date_today) = > 1332712800
strtotime($date_1d) = > 1332111600
$ile_dni = > 6.9583333333333
Couse正确答案是第一个。 怎么处理这种情况?
你是否同时运行这两个脚本? 我猜是时间/ DST问题还在继续。 请注意,计算日期差异的方法非常容易受到这些问题的影响。 如果您使用的是PHP 5.3或更高版本,请使用date_diff
。
在$ile_dni
上使用ceil()
,差异来自于'上周一'和strtotime生成的时间戳,我确信有一个更好的方法来做date('N')
,你可以做
$ile_dni = date('N')-1;
如果你希望ile_dni在星期一是0,在星期二等1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.