Почему Strotime возвращает отрицательное значение в PHP?

StackOverflow https://stackoverflow.com/questions/3469474

  •  28-09-2019
  •  | 
  •  

Вопрос

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

$year  = '1961';
$month = '2';
$day   = '15';

$date  = $year."-".$month."-".$day;

echo strtotime($date);

Приведенные выше код печати: -27648000 для меня. Если год выше 1970 года, он печатает положительные результаты. Я все еще учусь со временем, если кто-то может помочь мне. Главная цель состоит в том, чтобы преобразовать дату на метку Unix Timestamp.

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

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

Это было полезно?

Решение

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

Видеть: date() а также time()

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

Другие советы

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

strtotime Возвращает Timestamp Unix, количество секунд с 1 января 1970 года (не учитывая Scree Secons). Для датов до этого он вернет отрицательный номер.

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

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

Я все еще учусь со временем времени,

Google unix timestamp -> http://en.wikipedia.org/wiki/unix_time.

определяется как количество секунд, прошедших с Midnight Proleptic скоординированного универсального времени (UTC) 1 января 1970 года

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

Время UNIX или POSIX, - это система для описания точек во времени, определяемая как количество секунд, прошедших с Midnight Proleptic Corrited Universal Time (UTC) от 1 января 1970 года, не считая скачковых секунд. Он широко используется не только в Unix-подобных операционным системам, но и во многих других вычислительных системах и форматах файлов. Он не является ни линейным представлением времени, ни истинного представления UTC (хотя оно часто ошибается как для обоих), так как времена, которые он представляет, это UTC, но не представляют стандартные выкидные секунды UTC (например, 31 декабря 1998 23:59:60 ) ...

Раз до 1/1/1970 - отрицательные значения, поскольку они произошли до начала UTC.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top