<?php echo strtotime("2014-01-01 00:00:01")."<hr>"; // output is 1388516401 ?>
Я удивлен, если это может быть наоборот. Я имею в виду, могу ли я convert 1388516401 to 2014-01-01 00:00:01
. Я действительно хочу знать, какова логика этого преобразования. Как преобразовать дату преобразования в конкретное целое число.
Да, вы можете его вернуть. Можешь попробовать:
date("Ymd H:i:s", 1388516401);
Логика, связанная с этим преобразованием с даты на целое число, объясняется в sttime в php.net.
It is the number of seconds since January 1 1970 00:00:00 UTC. Printing echo strtotime("1970-01-01 00:00:00") gives you 0. Printing echo strtotime("1970-01-01 00:00:01") gives you 1.
Это означает, что если вы печатаете strtotime («2014-01-01 00:00:01»), который даст вам результат 1388516401 , поэтому дата 2014-01-01 00:00:01 составляет 1388516401 секунд с 1 января 1970 г. 00 : 00: 00 UTC.
Надеюсь, это поможет вам
Можете ли вы попробовать это,
echo date("Ymd H:i:s", 1388516401);
Как отметил TheGame ,
Это означает, что вы передаете строковое значение для времени и необязательно значение для текущего времени, которое является отметкой времени UNIX. Возвращаемое значение представляет собой целое число, которое является меткой времени UNIX.
echo strtotime("2014-01-01 00:00:01");
Это вернет значение 1388516401, которое является отметкой времени UNIX для даты 2014-01-01. Это можно подтвердить, используя функцию date (), как показано ниже:
echo date('Ym-d', 1198148400); // echos 2014-01-01
Думаю, вы спрашиваете, почему 1388516401 равно 2014-01-01 …?
Для этого есть историческая причина. Существует 32-разрядная целочисленная переменная, называемая time_t
, которая хранит счетчик времени, прошедшего с 1970-01-01 00:00:00 . Его значение выражает время в секундах . Это означает, что в 2014-01-01 00:00:01 time_t
будет равен 1388516401 .
Это обязательно приведет нас к еще одному интересному факту … В 2038-01-19 03:14:07 time_t
достигнет 2147485547 , максимальное значение для 32-битного номера. Вы когда-нибудь слышали о Джоне Титоре и проблеме 2038 года ? : D
Функция time () показывает секунды между текущей и эпохой unix, 01 01 1970 (00:00:00 GMT). Strtotime () преобразует нормальный формат даты в формат time (). Таким образом, представление этой даты в секунды будет: 1388516401
Источник: http://www.php.net/time