Преобразование даты в метку времени (timestamp) в PHP

Обновлено 8 июля 2022

В этой статье рассмотрим методы преобразования даты в метку времени (timestamp) в PHP.

Использование функции strtotime()

Встроенная функция strtotime() преобразует дату во временную метку Unix. Временная метка Unix — это общее количество секунд, отсчитываемое от эпохи Unix (1 января 1970 года). Правильный синтаксис для использования этой функции следующий:

strtotime($dateString, $timeNow);

Эта функция имеет два параметра. $dateString — это строка даты/времени, которая должна соответствовать допустимому формату PHP. Это обязательный параметр. Другой параметр $timeNow является необязательным, это метка времени, которая используется для вычисления относительных дат. Текущее время now является значением по умолчанию, если второй параметр опущен.

<?php
$timestamp = strtotime("23-04-2020");
echo "The timestamp is $timestamp.";

Дата здесь представлена в формате "d-m-Y". Мы передали только один параметр, так как он преобразует date в Unix timestamp (временную метку Unix).

Вывод:

The timestamp is 1587600000.

Использование функции strptime()

Это еще одна функция для преобразования даты в timestamp Unix. Она не преобразует date непосредственно в timestamp. Она возвращает массив, в котором указаны секунды, минуты, часы и некоторые другие данные. Мы можем использовать эти данные для преобразования date в timestamp.

strptime($dateString, $format);

Она имеет два обязательных параметра. $dateString — это строка даты, а $format — формат для парсинга $dateString.

<?php
$array = strptime('23-04-2020', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $array['tm_mon']+1, $array['tm_mday'], $array['tm_year']+1900);
echo "The timestamp is $timestamp.";

Вывод:

The timestamp is 1587600000.

После создания массива функция mktime() преобразует date в timestamp.

Синтаксис функции mktime() следующий:

mktime(hour, minute, second, month, day, year, is_dst)

is_dst определяет, является ли дата-время переходом на летнее время, но удален из PHP 7.0.0.

Предупреждение!

Мы прибавим 1 к $array['tm_mon'] и затем используем сумму в качестве параметра month в mktime, поскольку $array['tm_mon'] начинается с 0, или, другими словами, $array['tm_mon'] января равен 0.

Использование функции getTimestamp()

Метод getTimestamp() объекта DateTime — это простой метод преобразования даты в timestamp. Он имеет другой способ представления date_timestamp_get(), который является представлением процедурного стиля.

$datetimeObject->getTimestamp();

Мы создадим объект Datetime для вызова этой функции. Это объектно-ориентированный стиль вызова функции.

<?php
$date = new DateTime('2020-04-23');
$timestamp = $date->getTimestamp();
echo "The timestamp is $timestamp.";

Объект $date класса Datetime вызвал метод getTimestamp() для преобразования date (даты) в Unix timestamp.

Вывод:

The timestamp is 1587600000.

Использование функции format()

Мы также можем использовать метод format() в DateTime для преобразования даты в метку времени. Этот метод имеет другое представление date_format(), которое является представлением функции format() в процедурном стиле.

$datetimeObject->format("U");

Чтобы преобразовать дату в метку времени, формат, который мы передадим в виде строки, будет "U".

<?php
$dateObject = new DateTime('2020-04-23');
$timestamp = $dateObject->format("U");
echo "The timestamp is $timestamp.";

Объект $dateObject класса Datetime вызвал функцию format() для преобразования даты в временную метку Unix.

Вывод:

The timestamp is 1587600000.

Опубликовано 8 июля 2022
Категория: Статьи
Теги:
Источник

Добавить комментарий

Ваш адрес email не будет опубликован.

Спасибо

Fiverr Kwork

Спасибо

Я буду признателен каждому, кто угостит меня кофе, кликнув на кнопку Buy me a coffee 😀, чтобы мне хватило энергии дальше публиковать статьи и уроки для вас. Спасибо! 🙏