繁体   English   中英

php date&strtotime

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM