gpt4 book ai didi

PHP 日期时间错误?

转载 作者:行者123 更新时间:2023-12-03 21:03:08 24 4
gpt4 key购买 nike

我在使用 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 呢?

最佳答案

So why does the week go back to 01 without incrementing the year, and than why does the other line gives me 2013_01 ?

我认为您显示的是“年”而不是“周年”。当您使用周数时,相关部分是周年;简单的“年”仅与月份和日期相关。

编辑:我认为你想要 o 格式说明符,所以尝试:

var_dump($dte->format('Y-m-d H:i:s -- o_W'));

这应该显示 2012 年 12 月 31 日的 2013_01,因为它是 2013 年第 1 周。

所以基本上,我不认为这是 DateTime 中的错误 - 这只是对“一年中的一周”的用法的误解。

关于PHP 日期时间错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13684834/

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