Как переводить дату в метку времени в php примеры код скрипт
Все способы перевести дату во временную метку
- Дату во временную метку
- Дату в метку времени ->
strtotime - Дату в метку времени ->
mktime - Дату в метку времени ->
DateTime + format - Дату в метку времени ->
DateTime + getTimestamp - Дату в метку времени ->
date_create + date_format - Дату в метку времени ->
date_create + date_timestamp_get
- Дату в метку времени ->
- Метку времени в дату
- Дату в метку времени и обратно ->
online
-
Дату во временную метку
Давайте рассмотрим несколько примеров перевода даты во временную метку.
Перевести дату в метку времени (timestamp) ->
strtotime Для того, чтобы преобразовать дату в метку времени, вам понадобится функция "strtotime" :
Нам нужна дата! Пусть это будет не простая дата, а день победы! Дата должна быть в таком формате. Чтобы часы не были нулями... поставим 12:
1945-05-09 12:00Применяем к дате функцию strtotime таким образом:
strtotime('1945-05-09 12:00');Выводим с помощью echo результат преобразования даты в метку времени с помощью "strtotime" :
echo strtotime('1945-05-09 12:00');Пример преобразования даты во временную метку(strtotime) :
Далее возьмем тот код, который я разобрал выше и выведем его прямо здесь!
-777826800 У нас получилось какое-то число, которое и есть метка времени(timestamp) добытая из даты.
Обращаю ваше внимание! У нас временная метка идет отрицательная! Почему?
Любая дата младше полуночи (00:00:00 UTC) 1 января 1970 года будет иметь отрицательный знак!
Перевести дату в метку времени timestamp ->
mktime Для того, чтобы преобразовать метку времени(timestamp) вам понадобится:
Чтобы вы могли сравнивать... дату возьмем такую же, как и в первом пункте! Т.е. великий день победы:
1945-05-09 12:00 Следующая функция, которая нам поможет преобразовать дату в метку времени это - mktime.
Но сначала, нам нужно проделать пару манипуляций с нашей датой и преобразовать нашу дату в удобоваримую форму для функции mktime
Нужно заменить любые встречающиеся знаки в нашей дате на тире :
Используем str_replace, первым аргументом вставляем массив (если у вас предполагаются еще знаки, вы можете вставить в данный массив любое количество знаков через запятую):
array(' ',':','.',',',)Вторым аргументом тире:
'-'Третьим аргументом, идет дата:
'1945-05-09 12:00'Соберем всё вместе:
str_replace(array(' ',':','.',',',), '-', '1945-05-09 12:00')Разобьем с помощью explode в массив:
explode('-', str_replace(array(' ',':','.',', ',), '-', '1945-05-09 12:00'))Используем функцию list, чтобы сделать из разбитого в массив список ...:
list($year , $month , $day, $H, $i, $s) = explode('-', str_replace(array(' ',':','.',', ',), '-', '1945-05-09 12:00'));и сталось вернуть временную метку из даты:
echo mktime($H, $i, $s, $month, $day, $year);Пример преобразования даты во временную метку(mktime) :
Опять возьмем тот код, который я разобрал выше и выведем его прямо здесь - вы можете сравнить данный полученный результат с результатом выше пунктом! Выводится реальным кодом:
-777826800
Перевести дату в метку времени timestamp ->
Для следующего преобразования даты в метку времени будем использоватьDateTime + format DateTime + format для этого нам понадобится:
Великая дата остается неизменной:
1945-05-09 12:00 Пропускаем через класс DateTime + присваиваем переменной:
$dateTime = new DateTime('1945-05-09 12:00');format возвращаем строку даты.Внутрь скобок помещаем букву "U", которая и вернет временную метку из нашей даты, выводим с помощью echo:
echo $dateTime->format('U');Соберем весь код :
Код для преобразования даты в метку времени с помощью DateTime
<?
$dateTime = new DateTime('1945-05-09 12:00');
echo $dateTime->format('U');
?>
Пример преобразования даты во временную метку(DateTime) :
Как видим, наш код замечательно вернул из даты временную метку!
-777826800
Перевести дату в метку времени timestamp ->
Для того, чтобы преобразовать дату в метку времени можно использоватьDateTime + getTimestamp DateTime + getTimestamp для этого нам понадобится:
С изменением пункта, дата не меняется:
1945-05-09 12:00 Пропускаем через класс DateTime + присваиваем переменной:
$dateTime = new DateTime('1945-05-09 12:00');getTimestamp получим метку времени в стиле Unixecho $dateTime->getTimestamp();Соберем весь код:
Код для преобразования даты в метку времени с помощью DateTime + getTimestamp
<?
$dateTime = new DateTime('1945-05-09 12:00');
echo $dateTime->getTimestamp();
?>
Пример преобразования даты во временную метку(DateTime + getTimestamp) :
В очередной раз наш код вернул из даты временную метку!
-777826800
Перевести дату в метку времени timestamp ->
date_create + date_format В этом пункте разберем очередной способ перевода даты в метку времени! Для этого нам понадобится:
Конечно же дата:
1945-05-09 12:00 Функция date_create создает объект 'дата', с которым в дальнейшем можно выполнять некоторые операции.
Пропускаем через функцию date_create + присваиваем переменной:
$date = date_create('1945-05-09 12:00');date_format строку, отформатированную в соответствии с указанным шаблоном format.echo date_format($date, 'U');Соберем весь код:
Код для преобразования даты в метку времени с помощью date_create + date_format
<?
$date = date_create('1945-05-09 12:00');
echo date_format($date, 'U');
?>
Пример преобразования даты во временную метку(date_create + date_format) :
Код сработал и превратил дату во временную метку!
-777826800
Перевести дату в метку времени timestamp ->
date_create + date_timestamp_get Еще один вариант перевода даты во временную метку - будем использовать "date_create + date_timestamp_get" - для этого нам понадобится:
Без даты никак - она таже
1945-05-09 12:00 Используем в очередной раз date_create :
$date = date_create('1945-05-09 12:00');И получаем временную метку из переменной с помощью "date_timestamp_get":
echo date_timestamp_get($date);Соберем весь код вместе:
Код для перевода даты в метку времени с помощью date_create + date_timestamp_get
<?
$date = date_create('1945-05-09 12:00');
echo date_format($date, 'U');
?>
Пример преобразования даты во временную метку(date_create + date_timestamp_get) :
И этот код превратил дату во временную метку!
-777826800 Думаю этих способов вернуть временную метку из даты будет достаточно!
-
Метку времени в дату
Выше вы видели огромное количество материла, когда я перегонял дату во временную метку!
Далее перегоним временную метку в дату!
Приведу несколько способов сделать это!
Перевод временной метки в дату с помощью "date"
Для того, чтобы перевести/перегнать временную метку в дату вам понадобится:
Выше я уже использовал несколько раз временную метку, которая была выведена из дня победы! Давайте возьмем для нашего данного пункта:
-777826800Далее нам понадобится функция date - она не только может выводить разные форматы времени, но и прекрасно преобразует метку времени в дату.
Помещаем в неё нашу метку времени и задаем формат вывода даты(здесь... минуты(i) и секунды(s) - можно не выводить, поскольку во временной метке секунд нет и поэтому там будут нули...):
date('m/d/Y H:i:s',-777826800)Далее выводим полученный результат с помощью echo:
echo date('m/d/Y H:i:s',-777826800);Пример перевода временной метки в дату.
Далее нам остается применить приведенный код прямо здесь:
05/09/1945 12:00:00
Перевод временной метки в дату с помощью "DateTime"
Используем для получения даты из временной метки "DateTime"... опять возьмем нашу временную метку дня победы, результат будет выведен по гринвичу..., т.е. в нашем примере время по гринвичу и сервером разница в 3 часа:
<?
$tm_1 ='-777826800';
$dt = new DateTime("@$tm_1");
echo $dt->format('Y-m-d H:i:s');
?>
Результат возврата даты из метки времени:
1945-05-09 09:00:00 По гринвичу... это конечно хорошо, но как нам вернуть московское время(у меня на сервере именно это время)
Перевод временной метки в дату "DateTime" с коррекцией по времени сервера
Для коррекции нам потребуется date("Z"), которая нам вернет разницу между гринвичем и сервером в секундах
10800 Если мы это разделим на 3600, то получим часы: echo date("Z") / 3600;
3 Это и есть разница между москвой и гринвичем! Теперь можем собрать весь код:
Временная метка в дату с коррекцией времени сервера:
<?
$tm ='-777826800'+date("Z");
$dt = new DateTime("@$tm");
echo $dt->format('Y-m-d H:i:s');
?>
Результат возврата даты из метки времени:
1945-05-09 12:00:00
Временную метку в дату "gmdate"
Следующий пункт похож на пункт Перевод временной метки в дату с помощью "date" + проблема коррекции времени...
<?
$tmp = '-777826800' ;
echo gmdate('Y-m-d H:i:s', $tmp);
?>
Результат перевода временной метки в дату(gmdate):
1945-05-09 09:00:00 Аналогично требуется коррекция времени... <?
$tmp_1 = '-777826800' +date('Z');
echo gmdate('Y-m-d H:i:s', $tmp_1 );
?>
Результат перевода временной метки в дату(gmdate):
1945-05-09 12:00:00
Перевести дату в метку времени timestamp -> online
В форме ввода введите вашу дату, чтобы найти по ней временную метку - "timestamp"
Перевести метку времени timestamp в дату -> online
Раз уж выше мы сделали перевод времени в метку времени, то и можно сделать наоборот...
В форме ввода введите метку времени "timestamp", чтобы найти по ней дату.
timestamp
вернуть временную метку из даты
МЕТКА ВРЕМЕНИ ИЗ ДАТЫ
дату в метку времени
php метка времени в дату

подробнее.
подробнее.
подробнее.
подробнее.
подробнее.