gpt4 book ai didi

php - DateTime、+1 周和 -1 周的工作方式不同

转载 作者:行者123 更新时间:2023-12-02 04:36:05 25 4
gpt4 key购买 nike

我有几个函数在几周内来回切换。

我发现的一个令人惊讶且不受欢迎的行为是:

$date = new DateTime();
$date->setISODate(2014, 52);
$date->modify('+1 week');
echo date('YW', $date->getTimestamp()) . '<br />';

$date->setISODate(2014, 01);
$date->modify('-1 week');
echo date('YW', $date->getTimestamp()) . '<br />';

此代码打印:
201401
201352

我的期望是:
201501
201352

三个问题:

1) 我在上面的代码中做错了什么,或者“+1 周”和“-1 周”之间是否存在不一致的行为(如在第一种情况下没有被踩踏)?

来自评论的回答:
它从不增加/减少年份,但第 1 周恰好从 2013 年 12 月开始,因此在“-1 周”示例中它似乎减少了年份。

2) 如果存在不一致,我能否相信代码在各种平台和 PHP 版本上都能正常工作?

答案:
没有不一致(见接受的答案)

3) 有没有更好的方法在时间上向后和向前步进 1 周(输入是年和周,输出也是年和周)?

奖金问题)如果确实存在不一致,有人知道为什么吗?

答案:
没有不一致,请参阅第 1 个答案以获取解释

最佳答案

  • Y 是从日期开始的年份
  • o 是 ISO-8601 年份数
  • W 是 ISO-8601 年中的周数

如果使用“W”表示周数,则使用“o”表示年份。

关于php - DateTime、+1 周和 -1 周的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21961351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com