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

时间:2016-06-03 12:33:56

标签: php datetime year2038

我一直在尝试基于用户在我的基于PHP的Web应用程序中提供的某个整数值来生成年份和月份列表。虽然这样做我遇到了2038年的错误,但是这一年被重置为1970年,当时循环达到了2038.我使用的PHP版本是5.4,我用Google搜索并应用了此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++;
}

1 个答案:

答案 0 :(得分:1)

我正在使用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>";
}
?>

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