Дата PHP () только с 1970 по 2038 год - PullRequest
5 голосов
/ 27 июля 2011

Прежде всего, это не вопрос о том, как решить проблему, потому что моя дата выводит 1969.

Это вопрос о том, почему время не существует до 1970 г. или после 2038 г. при использовании date().

Я пробовал использовать SO и Google, но все, что появляется, это то, что люди получают ошибки при неправильном использовании date(), что приводит к знакомому выводу December 31, 1969 5:00 pm

Кто-нибудь знает почемуэто не может идти до 1970 года?Должны ли мы прекратить использовать date(), так как он будет непригоден после 2038 года?Какова история этого?Как обходится работа с датами вне этого диапазона?

Ответы [ 3 ]

4 голосов
/ 27 июля 2011

Это 2038 проблема

и смотри, Я в 1653

4 голосов
/ 27 июля 2011

Это объяснено на странице руководства PHP для date():

Допустимый диапазон отметок времени обычно от пт, 13 декабря 1901 г. 20:45:54 по Гринвичу до вт, 19 января 2038 г. 03:14:07 по Гринвичу. (Это даты, которые соответствуют минимальным и максимальным значениям для 32-разрядного целого числа со знаком).

Тот факт, что вы получаете 31 декабря 1969 г., означает, что вы, скорее всего, предоставляете нечетный timestamp параметр для date(), что приводит к дате, которая не соответствует ожидаемой. Как сказал @Mitch Wheat в своем комментарии, это относится ко времени Unix, поскольку оно является относительным с 1 января 1970 года.

3 голосов
/ 27 июля 2011

Сравните число 2 ^ 31 и количество секунд между двумя датами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...