Я новичок в PHP, и из книги, которую я читаю, я понимаю, что существует проблема 2038 года, которая гласит, что когда я использую метку времени, самая поздняя дата, которую я могу достичь, будет 19 января 2038 года. Чтобы преодолеть это ограничение Мне предлагается использовать объект dateTime. Тем не менее, когда я тестирую его на PHP (используя MAMP с PHP 5.6.6), кажется, что даже если я использую метку времени на более крупной дате, она работает отлично.
Например, обратите внимание на код ниже:
<?php
$date1_timestamp = mktime(13, 30, 0, 1, 12, 2049);
$date1 = date('Y-m-d H:i:s', $date1_timestamp);
echo $date1; // output: 2049-01-12 13:30:00
?>
Я хочу спросить, почему мой сервер PHP не страдает от проблемы 2038 года? Почему он может вывести правильное значение? Отметка времени не может содержать такое большое значение, верно?
Это проблема только для 32-битной версии PHP, вы, вероятно, используете 64-битную версию, которая может обрабатывать большее количество миллисекунд и, таким образом, представляет собой временную метку со значением в будущем больше, чем в 2038 году.
Других решений пока нет …