php date 是如何计算第几周的,php是不是有BUG?

大家可以试一下,

$str = strtotime("2018-12-31");
echo date('Y', $str), date('W', $str);
echo '
';
$str = strtotime("2015-12-31");
echo date('Y', $str), date('W', $str);

2018-12-31 求出的是 第1周, 2015-12-31 求出的是第53周,这是为什么

阅读 1.8k
评论
    2 个回答

    这个不是bug,出现这样的原因是因为,在判断某一天是哪一年的第几周的时候,根据采用的国际标准《数据存储和交换形式·信息交换·日期和时间的表示方法》,年首或者年末的那几天有可能不属于今年的第一周或者最后一周。18年12月31是周一,不属于18年的最后一周,而是属于19年的第一周

      • 2.7k

      看文档可知W的星期是按照ISO-8601标准来的,也就是1月4日所在的星期是一年的第一个星期(或者一年的第一个星期四所在的星期是第一个星期,这两个说法是等价的)。如果要用W,那么年应该用o而不是Y

        撰写回答

        登录后参与交流、获取后续更新提醒

        相似问题
        推荐文章