Я использую 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.