【发布时间】:2025-11-29 23:15:03
【问题描述】:
当我使用(new DateTime(time()))->format("W") 时,它有时会返回正确的值(15 表示 time() = '1618404852'),但有时它返回不正确的值(16 表示 time() = '1618404853')。
这些时间戳并不正好在两周之间,因为使用“1618404855”作为时间戳会得到 15(这是正确的)。
我的测试代码是:
echo (new DateTime("1618404852"))->format("W");
echo "\n";
echo (new DateTime("1618404853"))->format("W");
echo "\n";
echo (new DateTime("1618404854"))->format("W");
echo "\n";
echo (new DateTime("1618404855"))->format("W");
echo "\n";
echo (new DateTime("1618404856"))->format("W");
这会导致:
15
16
16
15
15
这对我来说毫无意义。 我在这里做错了吗?
我已经在本地 php-Server (8.0.0) 以及另一台运行 apache-php (7.4) 的机器上进行了尝试。 使用 phpfiddle 网站也会出现同样的问题。
【问题讨论】:
-
您尝试过什么调试问题?你到底卡在哪里了?
-
标记为正确的答案已经回答了问题。
标签: php date datetime week-number