STRRAVAGANZA про ПРИВЕТ С ТОГО СВЕТА
(кстати, клевая идейка то было) и узнал, что существует проблема 2038 года. Помните, была проблема 2000 года
, ее вроде удачно пережили.
А теперь вот это. Как оно пройдет? Опять все надуманно и раздувают на пустом месте? Вот вам про проблему подробнее …
Проблема 2038 года
в вычислительной технике - ожидаемые сбои в программном обеспечении 19 января 2038 года. Данная проблема затрагивает программы и системы, в которых используется представление времени по стандарту POSIX (UNIX-время), которое представляет собой количество секунд, прошедшее с 1 января 1970 года. Такое представление времени - это стандарт для Unix-подобных операционных систем (из-за повсеместного использования языка Си).
В старых 32-битных системах (до середины 90-х) используется тип данных time_t для хранения секунд в виде signed int (32-битного целого со знаком). Самая поздняя дата, которая может быть представлена таким форматом в стандарте POSIX - это 03:14:07, вторник, 19 января 2038 года по Всемирному времени (UTC).
Более позднее время заставит такое поле данных стать отрицательным, как бы закольцевав таким образом время (поскольку отрицательное число может быть воспринято программами как время в 1970 или 1901 году, в зависимости от реализации). В результате могут быть произведены ошибочные вычисления или результаты.
Для проблемы 2038 года не существует простого решения для существующих комбинаций процессоров и операционных систем.
Изменение определения типа time_t на 64 бита нарушит бинарную совместимость программ, существующих хранимых данных и всего другого, использующего представление времени в бинарном виде. А приведение time_t в целое без знака может нарушить работу программ, которые вычисляют разницу во времени.
В большинстве операционных систем для 64-битных архитектур уже используется 64-битное представление целого в time_t . Переход на такие архитектуры уже происходит, и некоторые ожидают, что он будет завершён к 2038 году.
Тем не менее, сотни тысяч 32-битных систем всё ещё вводились в строй в 2010 году, в том числе и во встраиваемых системах. Вызывает сомнение, что они все будут заменены к 2038 году. Несмотря на то, что современные компьютерные системы могут модернизироваться раз в 18-24 месяцев (по «Закону Мура»), встроенные компьютеры могут действовать без модернизации весь срок, который работают системы, ими управляемые. Например, компьютеры управления процессами модели IBM 1800, выпуск которых был начат в 1965 году, всё ещё использовались на одной из атомных станций в Канаде в 2006 году.
В дополнение к этому, 32-битный формат time_t также включён в спецификации форматов файлов, таких как повсеместно распространённый архивный формат ZIP. Формат файла может существовать в течение времени, за которое сменятся многие поколения компьютеров, а это означает, что Проблема 2038 останется актуальной.
Введение 64-битного формата вносит новую дату «закольцовывания» - оно произойдёт примерно через 290 миллиардов лет (4 декабря 292 277 026 596 года в 15:30:08
Кстати, возвращаясь к теме поста про «привет из склепа» как то думал про то, что вот скоро начнет умирать активно поколение социальных сетей и интернет будет заполняться страницами людей, которые давно умерли. Т.е вот так через несколько поколений люди будут заходить к давно умершим в гости и смотреть какой фигней они страдали там в сетях. Самострели, приколы, фотки еды … Правнуки будут бродить по страницам прабабушек и прадедушек, а то и дальше?
Есть вариант конечно, что по сроку давности страницы будут удаляться. Почему не сделать услугу с предоплатой, чтобы страница жила в интернете вечно.
А жаль если удалят … я бы свои оставил. А вы?
Оригинал статьи находится на сайте ИнфоГлаз.рф
Ссылка на статью, с которой сделана эта копия -
По аналогии с пугавшей человечество 15 лет назад «проблемой 2000 года» специалисты называют новую - «проблему 2038 года». Якобы 19 января этого года компьютеры, использующие распространённую сейчас систему исчисления времени, могут столкнуться с системной ошибкой: у них не найдётся числа, чтобы отобразить эту дату в двоичном коде. Однако есть основания считать, что к этому времени вопрос станет неактуальным из-за быстрого развития техники.
19 января 2038 года в 03:14:07 по Гринвичу компьютеры и другие устройства с 32-битной системой не смогут больше верно отсчитывать время. Такую новость обсуждают многие СМИ мира. Гипотетическую ситуацию, по примеру «проблемы 2000 года», когда ожидались возможные сбои из-за смены тысячелетия, назвали «проблемой 2038 года». Впрочем, она будет актуальна, только если к этому моменту ещё останутся компьютеры, использующие нынешний принцип отсчёта времени.
Не хватит цифр
Как поясняют специалисты, дело в том, что очень многие вычислительные устройства, в том числе использующие операционные системы Windows, Android, Macintosh, - отсчитывают системное время с 1 января 1970 года в секундах, используя 32-битное значение. 19 января 2038 года наступит момент, когда у них просто не найдётся числа, чтобы записать наступление 2 147 483 648-й секунды. И счётчик «обнулится» до 1970 или 1901 года, в зависимости от установок. Это может привести к системным ошибкам.
С подобной ситуацией уже столкнулся Google на своём сервисе YouTube. Проблему вызвало самое популярное видео в интернете - клип Gangnam Style южнокорейского исполнителя Psy. Когда количество его просмотров достигло 2 147 483 647, счётчик просто перестал работать. Программистам Google пришлось его переписывать. Починили с большим заделом - теперь допустимое количество просмотров составляет 9 223 372 036 854 775 808 (более 9 триллионов).
Насколько серьёзна проблема
Программисты знают о существующем ограничении 32-битных систем и готовятся к 2038 году. К примеру, введение 64-битного отсчёта времени в современных системах отодвигает «проблему 2038 года» сразу на 290 миллиардов лет. Но в мире остаётся ещё много 32-битных систем. К тому же, эта проблема таится ещё и во многих нынешних широко распространённых форматах файлов.
«Современные версии операционных систем решают эту проблемы переходом к 64-битной схеме отсчёта времени, но некоторые старые устройства, или те, на которых установлено старое програмное обеспечение, могут повести себя непредсказуемо», - отметил журналист издания The Economist Гленн Флейшман.
«На самом деле, решение заключается в том, что в течение 23 лет многие 32-битные системы устареют и будут подлежать замене. На смену им придут те, которым не потребуется исправление», - пишет The Guardian.
«Самой большой головной болью, видимо, станет модернизация оборудования, к примеру, на энергетических объектах. Но если планировать эту работу заранее, то можно избежать больших проблем», - отмечает издание.
Одно можно сказать определённо: у человечества достаточно времени, чтобы разобраться с этим вопросом. К тому же, «проблема 2000 года» в итоге так и не вызвала того, что многие предрекали. К примеру, массового отключения АЭС и падения самолётов.
19 января 2038 года в 03:14:07 по Всемирному времени, в приложениях, работающих под 32-битной версией PHP, может произойти сбой. В этот момент, стандартные функции работы с датой и временем перестанут корректно обрабатывать текущее время.
Все это связано с тем, что для представления даты и времени используется целое число. Данное число представляет собой количество секунд прошедших с начала эпохи UNIX, а именно с полночи 1 января 1970 года по Всемирному времени. В 32-битной версии PHP для хранения этого числа используется 32-битное целое со знаком. Максимально возможным значением для такого типа является 2 147 483 647, которое соответствует указанной критической дате.
Существует большая степень вероятности того, что к 2038 году все функционирующие системы и PHP-интерпретаторы будут 64-битные. Такое изменение, даст возможность беспрепятственно работать с датой примерно на 290 миллиардов лет вперед. Однако возникает сомнение, что это произойдет к 2038 году.
Еще одной проблемой 2038 года является невозможность работы с датами в прошлом и в будущем, уже сейчас. Под данное ограничение подпадают даты находящиеся до 1902 и после 2037 года.
Пути решения
Существует 2 способа решения данной проблемы:
Не делать ничего, т.к. к 2038 году проблема будет решена естественным образом;
Использовать встроенный класс «DateTime».
Первый способ полностью себя исчерпывает и, несмотря на свою простоту, является недальновидным.
Второй способ, напротив, имеет право на существование. О нем и пойдет речь далее.
Класс «DateTime»
Класс «DateTime», появившийся в PHP 5.2, призван полностью решить проблему 2038 года. Однако, программистам, привыкшим к стандартным функциям обработки даты и времени, работать с этим классом будет неудобно. Для ускорения процесса разработки приложений лучше всего использовать функции являющиеся интерфейсом к классу «DateTime».
Чтобы упростить жизнь программистов, я написал несколько аналогов часто используемых функций работы с датой и временем. Стоит заметить, что входные параметры и поведение функций не идентично встроенным аналогам.
Функция получения текущей метки времени Unix
Функции вывода даты и времени в определенном формате
Функция получения информации о метке времени Unix
Функции формирования метки времени Unix для заданной даты и времени
Заключение
Не стоит забывать, что теперь, при использовании типичных функций, в обязательном порядке, следует указывать часовой пояс по умолчанию. Делать это необходимо следующим образом:
Также приведу несколько вариантов применения указанных функций: