我一直在尝试基于用户在我的基于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++;
}
。
答案 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。它会起作用。