php - дата сбрасывается в 1970 в 2038 году при добавлении в цикл

Я пытался создать список лет и месяцев, основываясь на некотором целочисленном значении, предоставленном пользователем в моем веб-приложении на основе PHP. При этом я столкнулся с ошибкой 2038 года, год был сброшен до 1970 года, когда цикл достиг 2038. Я использую версию PHP - 5.4, и я прибегнул к гуглу и применил решение, найденное по этой ссылке, но оно не работает для меня. Кто-нибудь пробовал другое решение для ошибки 2038 в php?

Вот мой 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 ответ

Решение

Я использую 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>";
}
?>

Мы могли видеть много сообщений по этой проблеме. Для отображения даты, кажется, нет проблем. Но при хранении в базе данных я тоже столкнулся с той же проблемой. если вы используете тип данных timestamp, просто измените как datetime. Это будет работать.

Другие вопросы по тегам