将某些日期字符串转换为日期时间值时出现 PHP strtotime 错误

标签 php date strtotime

我在 php 中遇到了 strtotime 的问题。

$j = "2013-10-27";
for ($x = 0; $x < 100; $x++) {
  $j = date('Y-m-d', strtotime($j) + 86400);
  echo ' '.$j.' <br/>';
}

由于代码是 self 解释的,它会将一天添加到 $j 然后显示到浏览器。 但是当 $j = "2013-10-27"时,它只打印一个结果 ("2013-10-27")。如果我将 $j 更改为另一个日期,这确实有效,但也会卡在这个日期(和其他某个日期)。

我已经编写了其他代码来完成这项工作。 但是有谁知道为什么会失败,还是我的代码错了?

谢谢。

最佳答案

这是因为您所在的时区采用夏令时,并且在 10 月 27 日凌晨 1 点,时间恢复到午夜,使这一天成为 25 小时。

这可以通过设置时区来重现:

<?php
date_default_timezone_set('Europe/London');
$j = "2013-10-27";
for ($x = 0; $x < 100; $x++) {
  $j = date('Y-m-d', strtotime($j) + 86400);
  echo ' '.$j.' <br/>';
}

http://codepad.viper-7.com/uTbNWf

关于将某些日期字符串转换为日期时间值时出现 PHP strtotime 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720955/

相关文章:

java - 如何在JAVA中找到我当前的时间在今天的时间和明天的日期之间

php 日期格式帮助 日期格式不提供有效日期,即使它与文档匹配

php - Laravel 护照 API : Retrieve Authenticated Token

php - 从 MySQL INSERT 获取 ID

php - 如何在 php 中使用 soap 调用 Web 服务

javascript - 如何通过onClick()函数保留highchart折线图 - php mysql

date - 如何在 Elasticsearch 中对嵌套日期和非嵌套日期进行日期运算?

sql - 查找日期列的最小值和最大值

php - 强制 php strtotime 使用 UTC