PHP strotime+;1周误差
我对strotime和以下代码有问题(我需要给定时间范围内的所有日历漏洞) 问题是条目编号52带有“2014-01”,应该是“2015-01”。时间范围为2015-01-01至2016-03-01,结果正常。这是strotime函数中的错误吗? 我使用的是PHP版本5.5.10PHP strotime+;1周误差,php,date,strtotime,week-number,Php,Date,Strtotime,Week Number,我对strotime和以下代码有问题(我需要给定时间范围内的所有日历漏洞) 问题是条目编号52带有“2014-01”,应该是“2015-01”。时间范围为2015-01-01至2016-03-01,结果正常。这是strotime函数中的错误吗? 我使用的是PHP版本5.5.10 感谢您的帮助。这与ISO周数有关。另外,strotime()是一种不好的日期计算方法,PHP建议不要这样做(感谢闰年和夏令时)。使用DateTime()类可以准确地执行此操作: $startdate = new Date
感谢您的帮助。这与ISO周数有关。另外,
strotime()
是一种不好的日期计算方法,PHP建议不要这样做(感谢闰年和夏令时)。使用DateTime()
类可以准确地执行此操作:
$startdate = new DateTime('2014-01-01');
$enddate = new DateTime('2015-03-01');
$interval = new DateInterval('P7D');
$period = new DatePeriod($startdate , $interval, $enddate);
foreach($period as $date) {
$all_dates[] = $date->format('o-W'); // o modifier for ISO year
}
var_dump($all_dates);
这与ISO周数有关。另外,
strotime()
是一种不好的日期计算方法,PHP建议不要这样做(感谢闰年和夏令时)。使用DateTime()
类可以准确地执行此操作:
$startdate = new DateTime('2014-01-01');
$enddate = new DateTime('2015-03-01');
$interval = new DateInterval('P7D');
$period = new DatePeriod($startdate , $interval, $enddate);
foreach($period as $date) {
$all_dates[] = $date->format('o-W'); // o modifier for ISO year
}
var_dump($all_dates);
更改此行并使用
o
iso年份:
$all_dates[] = date('o-W', strtotime($tempdate));
// ^
更改此行并使用
o
iso年份:
$all_dates[] = date('o-W', strtotime($tempdate));
// ^
我也是。我想我第一次试的时候可能是打错了什么的。之前的一条被删除了,现在评论都乱了。但是,是的,我第二次尝试成功了。我怎么会是唯一一个投票支持这一点的人呢?虽然我的答案可能是更好的练习,但这是对这个问题的更好回答。@johncode没问题,事实上,如果我是OP,我更希望你的答案,
DateTime
classrocksi也做了。我想我第一次试的时候可能是打错了什么的。之前的一条被删除了,现在评论都乱了。但是,是的,我第二次尝试成功了。我怎么会是唯一一个投票支持这一点的人呢?虽然我的答案是更好的练习,但这是对这个问题的更好回答。@johncode没问题,实际上如果我是OP,我更希望你的答案,DateTime
class