php - 在循环添加时将日期重置为 2038 年的 1970 年

php - date reset to 1970 at 2038 while adding in a loop

我一直在尝试根据用户在我的基于 PHP 的网络应用程序中提供的一些整数值生成一个年份和月份列表。在执行此操作时,我遇到了 2038 年的错误,当循环达到 2038 年时,年份被重置为 1970 年。我使用的 PHP 版本是 5.4,我在谷歌上搜索并应用了在此 link 中找到的解决方案,但它对我不起作用,有人尝试过其他解决方案来解决 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++;
}

我正在使用 php 5.6 版。下面的代码产生输出 View output

<?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>";
}
?>

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