Что произошло 31 декабря 1969 года в 7:00 вечера - PullRequest
26 голосов
/ 06 марта 2010

Каждый раз в PHP, когда я делаю переменную, такую ​​как эта:

$date = strtotime($row['date']);
$date = date("M d Y \a\\t g:i A", $date); // Mmm dd YYYY at h:mm PM/AM

и как-то row['date'] оказывается 0, дата Dec 31 1969 at 7:00 PM отображается на экране? Google мало что мне говорит, мне было интересно, имела ли эта дата какое-либо значение.

Ответы [ 5 ]

44 голосов
/ 06 марта 2010

Эпоха Unix - это время 00:00:00 UTC 1 января 1970 года. Это точка отсчета для всех меток времени. Когда вы используете функции даты / времени в PHP, вы всегда работаете с количеством секунд с начала эпохи. Время 0 - это эпоха, и вы (или ваш веб-сервер) должны быть на восточном побережье США, что на 5 часов позже времени UTC.

21 голосов
/ 30 сентября 2013

Мне показалось забавным, что ни один ответ здесь не пытался ответить на ваш реальный вопрос, который был (если я могу перефразировать) «Каково значение фактической даты эпохи Unix»?

Я не специалист по этому вопросу, но, как я понимаю, концепция времени эпохи была изобретена в 1971 году. Программисты выбрали произвольную дату 1 января 1971 года по Гринвичу как время эпохи. Отчасти это было связано с тем, что старые компьютеры не могли обрабатывать большие числа, поэтому дата должна была быть в недавнем прошлом. Впоследствии время эпохи было скорректировано так, чтобы оно было 1 января 1970 года, чтобы получилось хорошее круглое число.

Так что в этот день ничего "не произошло". Это была произвольная дата, выбранная на основе первоначального времени выполняемой работы.

6 голосов
/ 06 марта 2010

метки времени Unix измеряются в «времени, прошедшем с эпохи Unix », то есть в полночь по Гринвичу в конце 31 декабря 1969 года (также 00:00 по Гринвичу 1 января 1970 года) , Поскольку вы, похоже, используете восточное стандартное время, то есть время по Гринвичу-5, вы получите 7 вечера 31 декабря 1969 года для значения метки времени unix, равного 0.

4 голосов
/ 06 марта 2010

Дай угадаю: ты живешь на восточном побережье США?

PHP, как и многие другие системы, использует эпоху Unix для измерения времени, то есть значение 0 представляет 1 января 1970 года в полночь UTC - то же самое, что 31 декабря 1969 года в 19:00. Стандартное восточное время.

1 голос
/ 06 марта 2010

Один формат, в котором хранятся объекты даты, - это время в секундах, прошедшее с произвольного времени начала. Запрос отформатированной версии «0» - это все равно, что запросить произвольное время начала. Я не помню, почему была выбрана эта дата, но я уверен, что Википедия это делает. См. Статью о времени Unix ниже.

Читать о Unix Time

...