如ISO 8601所述,有些年将有53周,2015年就是其中之一。 2016年的下周会是什么?它是否从第01周开始?我问的原因是,在我的一个项目中有一个URL" 2016-W01"确实显示错误的日子(例如,2016年1月2日星期一 - 应该是2016年1月4日星期一)。如果我打电话给" 2016-W02"正确的日子即将到来(1月4日至10日),但显然是#34;"这应该是week01而不是week2 ..
有关于此的任何想法吗?谢谢!
答案 0 :(得分:1)
<?php
$dt = new DateTime('2015-12-27');
for($i=0; $i<12; $i++) {
echo $dt->format('Y-m-d , D, W'), "\r\n";
$dt->modify('+ 1 day');
}
打印(没有描述)
2015-12-27 , Sun, 52
2015-12-28 , Mon, 53\
2015-12-29 , Tue, 53|
2015-12-30 , Wed, 53|
2015-12-31 , Thu, 53 <-- this thursday is in 2015, therefore this is week 53
2016-01-01 , Fri, 53|
2016-01-02 , Sat, 53|
2016-01-03 , Sun, 53/
2016-01-04 , Mon, 01\
2016-01-05 , Tue, 01|
2016-01-06 , Wed, 01|
2016-01-07 , Thu, 01 <-- this is the first thursday in 2016, therefore this is week 1
编辑和btw:您可能希望切换项目以使用标准的php日期/时间解析器:
<?php
$dt = new DateTime('2016W01'); echo $dt->format('Y-m-d, D, W'), "\r\n";
$dt = new DateTime('2016W02'); echo $dt->format('Y-m-d, D, W'), "\r\n";
打印
2016-01-04, Mon, 01
2016-01-11, Mon, 02
答案 1 :(得分:0)
本周仅从1月1日的01开始。但在这种情况下,1月1日是在第53周,因此它将跳过01周,并显示为02周1月02日。