0

我一直在尝试根据用户在我的基于 PHP 的 Web 应用程序中提供的一些整数值生成年月列表。这样做时,我遇到了 2038 年的错误,当循环到达 2038 年时,这一年被重置为 1970 年。我使用的 PHP 版本是 5.4,我用谷歌搜索并应用了在这个链接中找到的解决方案,但它对我不起作用,有没有人为 php 中的 2038 错误尝试其他解决方案?

这是我的PHP代码:

 $i = 1;
 $Tenurein = 360;
 while ($i < $Tenurein) {
    $MonthArr[] = date('F', strtotime($date2));
    $YearArr[] = date('Y', strtotime($date2));
    $date = new DateTime($date2);
    $date->add(new DateInterval('P1M'));
    $dateMon = $date->format('Y-m-d');
    $date2 = $dateMon;
    $i++;
}

.

4

1 回答 1

1

我正在使用 php 版本 5.6。下面的代码产生输出 查看输出

<?php
$i = 1;
 $Tenurein = 360;
 $date2 = date('Y-m-d');
 while ($i < $Tenurein) {
    $MonthArr[] = date('F', strtotime($date2));
    $YearArr[] = date('Y', strtotime($date2));
    $date = new DateTime($date2);
    $date->modify('+1 month');
    echo $dateMon = $date->format('Y-m-d');
    $date2 = $dateMon;
    $i++;
    echo "<br>";
}
?>

我们可以看到很多关于这个问题的帖子。对于显示日期,似乎没有问题。但是在存储在数据库中时,我也面临同样的问题。如果您使用时间戳数据类型,只需更改为日期时间。它会起作用的。

于 2016-06-03T13:01:45.057 回答