Y2K38

Ожидаемый коллапс электронного пространства в y2k так и не состоялся, а следующий намечен на далёкий 2038-ой год.
Но такой ли он далёкий? Буквально сегодня пришлось столкнуться лицом к лицу с нависшей над миром угрозой.
В разрабатываемой системе все манипуляции с датами проводились через преобразование в unix timestamp и последующим его форматированием штатными средствами php (strtotime, mktime, strftime, date) и вся эта хрупкая конструкция разлетелась, когда вдруг возникла дата 01.01.2059. Нет, это не сумашедшие бета-тестеры и не опечатка – это оказался срок годности пива действия паспорта. Казалось выхода нет и человеку надо будет менять паспорт, но решение всё же нашлось: ADOdb Date Time Library – старенькая библиотечка на чистом php, которая позволит вам жить счастливо даже после официального окончания unix-эпохи.
Какие ещё беды настрадал нам Предсказамус?

Update: во какую штуку нашёл, надо бы донести это знание до тех, кому не безразлично…

27.02.08  
MiRacLe
 |   | RSS с комментариями  | trackback url
03.03.08 11:50 |  comment от GolDen

Полезная инфа – не обращал ранее на это внимания. Растроило меня однако следующее, в мануале к ф-ции mktime() написано следующее:

The number of the year, may be a two or four digit value, with values between 0-69 mapping to 2000-2069 and 70-100 to 1970-2000. On systems where time_t is a 32bit signed integer, as most common today, the valid range for year is somewhere between 1901 and 2038. However, before PHP 5.1.0 this range was limited from 1970 to 2038 on some systems (e.g. Windows).

Но на деле у себя под PHP 5.2.0-8 и под Debian x64 исправления проблемы обнаружить не удалось :(

03.03.08 13:13 |  comment от MiRacLe

Собственно информацию в сноске мануала я сразу проверил,а уж потом немного углубившись в теорию, понял, что вряд ли это действительно правда (может на будущее написали, в качестве TODO).

Есть возможность прокомментировать ситуацию

WP не сожрёт только эти тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>