PHP: ошибка 2038 года
Леонид Кагановвзято отсюда: https://lleo.me/dnevnik/2024/01/17
Предыстория — ваял небольшую софтинку, [ ТЕКСТ ПОД КАТОМ: Доступен только в оригинальной заметке на сайте ] Короче, сделал выбор плюс к текущей дате: час, неделя, месяц, год, ну или 50 лет — это типа вечно. И тут выясняется... С JS все норм. Но PHP, на котором я по-быстрому накидал бэкенд, принялся при подсчете +50 лет выдавать ошибку. Мол, хуле в функцию data() ты передаешь float, когда ожидается int? Штааа?! Какой float в PHP, сроду там типы не различались?! И внезапно выясняется, что в PHP есть некий параметр PHP_INT_MAX, и на моем сервере он int32 и его максимум 2147483647. Что в случае date('Y-m-d--H-i-s',PHP_INT_MAX) соответствует числу секунд UnixTime для даты 2038-01-19 06:14:07...
Не то, чтоб я собирался сильно долго жить и нужна была вечная игла для примуса, как говорил в таких случаях Остап Бендер. Но интересно осознавать, что через 14 лет и 4 дня жители Британии встали рано в 6 часов — у бэкендов нет часов! Ну это у них там в Британии будет 6 утра, у нас в Ингрии уже наверно 9 или 10 часов утра будет. А сколько будет в Москве и будет ли вообще — неизвестно. Как думаете, исправят PHP-шники ошибку функции data() или к тому времени сам PHP уйдет в музей древней хуйни?
взято отсюда: https://lleo.me/dnevnik/2024/01/17