PHP DateInterval 函数给出错误的周数结果

普里亚

我有一个循环,将一周添加到给定日期,如下所示,

$db_date = '201849';

$year = substr($db_date, 0, 4);
$week = substr($db_date, 4);

$dateFromStr = new DateTime();
$dateFromStr->setISODate($year, $week);

if($dateFromStr){
    for($b=0; $b < 27; $b++){
        $calc_date = clone $dateFromStr;
        $calc_date->add(new DateInterval("P" . $b . "W"));
        $header_week = $calc_date->format("YW");
    }   
}

输出 :

201849,201850,201851,201852,201801,201902,201903,...,201923

但正确的输出将是:

201849,201850,201851,201852,201901,201902,201903,...,201923

我不知道为什么我得到201801而不是201901作为输出。

请帮我解决这个问题谢谢。

多米利希

我不知道为什么我得到 201801 而不是 201901 作为输出。

那是因为对应的日期是2018-12-31

如果您想要根据 ISO 周数的年份编号,则必须使用o, not Y(这也在date()手动条目中提到)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章