我遇到了 php 的 DateTime 函数的问题。今天是 12 月 3 日星期一。
假设以下代码:
$dte = new DateTime(date('Y-m-d H:i:s'));
var_dump($dte->format('Y-W'));
$dte->modify('+4 weeks');
var_dump($dte->format('Y-m-d H:i:s -- Y_W'));
$dte->modify('+1 days');
var_dump($dte->format('Y-m-d H:i:s -- Y_W'));
四个星期后,将是 12 月 31 日。我怀疑会得到一年中的最后一周(52?)。但我得到的是 2012 年的第 1 周,正如您在以下输出中看到的那样。
string '2012-49' (length=7)
string '2012-12-31 14:48:00 -- 2012_01' (length=30)
string '2013-01-01 14:48:00 -- 2013_01' (length=30)
所以我的问题是,在第一次修改后,我认为我应该得到:
2012-12-31 14:48:00 -- 2012_52
但相反我得到
2012-12-31 14:48:00 -- 2012_01
那么为什么一周回到 01 而不增加年份,为什么另一行给我 2013_01 ?
编辑:: 我现在看到前一周是第 52 周,与闰年有什么关系?但是话又说回来,周怎么能回到01而不增加年份呢?