почему строковое выражение возвращает отрицательное значение в php?

Я использую strtotime для преобразования даты в штамп unixtime. Год, дата и день идут как разные значения для кода, и я использую приведенный ниже код для создания метки времени.

$year = '1961'; $month = '2'; $day = '15'; $date = $year."-".$month."-".$day; echo strtotime($date); 

Вышеприведенный код печатает: -27648000 для меня. Если год выше 1970 года, он печатает положительные результаты. Я все еще участвую в timestamp, если кто-то может помочь мне. Основная цель – преобразовать дату в временную метку unix.

Вопросы, почему это дает отрицательные результаты, я кодирую это плохо !? Я также пробовал mktime, но все тот же результат.

Спасибо, Танмай

Это связано с эпохой Unix.

См .: date() и time()

Допустимый диапазон временной отметки – от Fri, 13 Dec 1901 20:45:54 GMT до Tue, 19 января 2038 03:14:07 GMT. (Это даты, соответствующие минимальным и максимальным значениям для 32-разрядного целого числа со знаком). Однако до PHP 5.1.0 этот диапазон был ограничен с 01-01-1970 по 19-01-2038 на некоторых системах

Это ожидаемое поведение.

strtotime возвращает strtotime метку UNIX, количество секунд с 1 января 1970 года (не считая секунд прыжка). Для дат до этого он вернет отрицательное число.

Время Unix начинается с эпохи Unix, которая является Midnight 1 января 1970 года. Таким образом, любая дата до этого приведет к возврату отрицательного значения.

Это временная метка Unix. Дата основания Unix / PHP – 1 января 1970 года в 00:00 UST, а отметка времени измеряется в секундах. Если значение отрицательное, это количество секунд до базовой даты; если положительно, количество секунд после

Я все еще участвую в timestamp,

unix timestamp google unix timestamp -> http://en.wikipedia.org/wiki/Unix_time

определяемое как количество секунд, прошедших с полуночного пролепика. Скоординированное всеобщее время (UTC) от 1 января 1970 года

http://en.wikipedia.org/wiki/Unix_time

Время Unix или время POSIX – это система для описания точек во времени, определяемая как количество секунд, прошедших с полуночного пролептика «Скоординированное универсальное время» (UTC) от 1 января 1970 года, не считая секунд прыжка. Он широко используется не только в Unix-подобных операционных системах, но и во многих других вычислительных системах и форматах файлов. Он не является ни линейным представлением времени, ни истинным представлением UTC (хотя он часто ошибочен для обоих), так как время, которое он представляет, является UTC, но не представляет стандартные секунды скачка UTC (например, 31 декабря 1998 года 23:59:60 ) …

Времена до 1/1/1970 являются отрицательными значениями, которые произошли до начала UTC.