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

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

В этом руководстве мы рассмотрим как изменить  php форматирование времени, используя пользовательское форматирование. Мы начнем с получения текущей метки времени и отображения ее с помощью простой функции даты. Далее мы будем использовать текущую метку времени для создания объекта Date Time, форматирования даты и ее отображения. Затем мы рассмотрим некоторые параметры форматирования даты и времени, а затем класс Date Time Zone. И, наконец, мы создадим функцию для преобразования метки времени в DateTime с параметрами часового пояса и формата даты.

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

В Этой Статье

  • Получение метки времени
  • Временная метка в объект Date Time
  • Форматирование даты
  • Форматирование времени
  • Дата с часовым поясом
  • Преобразование метки времени в дату и время

Получение Метки Времени

Давайте начнем с базовой функции PHP для получения метки времени, которую мы будем использовать time()для получения текущей метки времени и даты для форматирования выходных данных.

$now = time(); //current timestamp  echo $now; //A time stamp similar to 1610246191  echo date('Y-m-d', $now); //A date like 2021-01-10    //see also  //microtime() — current unix timestamp including microseconds                  

Сохраненная временная метка $nowпохожа на 1610246191, поэтому мы форматируем ее, используя date('Y-m-d', $now)для удобного вывода. Возвращаемая временная метка выражается в секундах, см. Функцию microtime, чтобы получить временную метку, включающую микросекунды.

Временная Метка В Объект Date Time

Хотя мы можем использовать эту dateфункцию для форматирования нашей даты или метки времени, это не объектно-ориентированный способ сделать это. Давайте создадим объект DateTime и установим временную метку.

$now = time(); //current time stamp    $date = new \DateTime();  $date->setTimeStamp($now);    //ISO8601 formatted datetime  echo $date->format('c'); //similar to 2021-01-15T02:52:35+00:00                  

Затем мы можем вывести дату и время, используя formatметод с параметром 'c'datetime.

Форматирование Даты

Этот formatметод может форматировать дату многими различными способами, распространенными форматами являются: Y-m-dи d/m/Y.

//different date formats  echo $date->format('Y-m-d'); // 2021-01-15  echo $date->format('d/m/Y'); // 15/01/2021                  

В руководстве по PHP доступно гораздо больше форматов дат.

Форматирование Времени

DateTimeКласс также может formatиспользовать ту же временную метку только в формате time only.

//different time formats  echo $date->format('H:i:s'); //similar to 03:22:55  echo $date->format('H:i'); //similar to 03:22                  

В приведенном выше коде мы используем формат H: i:s(Час, минута, секунда).

Дата С Часовым Поясом

DateTimeОбъект может быть настроен на использование определенного часового пояса. Мы создаем новый DateTimeZoneс определенным часовым поясом и вызываем setTimeZoneметод для нашего DateTimeобъекта.

$now = time(); //current timestamp  $date = new \DateTime();  $date->setTimeStamp($now);    $date->setTimeZone(new \DateTimeZone('UTC'));  echo $date->format('d/m H:i'); // 15/01 03:25    $date->setTimeZone(new \DateTimeZone('Europe/Helsinki'));  echo $date->format('d/m H:i'); // 15/01 05:25    $date->setTimeZone(new \DateTimeZone('Pacific/Fiji'));  echo $date->format('d/m H:i'); // 15/01 16:25                    

Класс DateTimeZone имеет множество параметров часового пояса. Приведенный выше пример кода PHP отображает одну и ту же временную метку с использованием разных часовых поясов.

Преобразование Метки Времени В Дату И Время

Наша последняя функция представляет собой комбинацию DateTimeи DateTimeZoneс 3 параметрами: меткой времени, часовым поясом и форматом даты / времени с форматированием по умолчанию.

function timeStampToDateTime($timestamp, $zone, $format = "d/m/Y H:i:s") {      $date = new \DateTime($zone);      $date->setTimeZone(new \DateTimeZone($zone));      $date->setTimeStamp($timestamp);      $result = $date->format($format);      return $result;  }    $now = time(); //current time stamp  echo timeStampToDateTime($now, 'GMT'); //15/01/2021 03:38:01  echo timeStampToDateTime('1608040800', 'Africa/Johannesburg'); //15/12/2020 14:00:00  echo timeStampToDateTime('1530383400', 'UTC', 'd/m/Y'); //30/06/2018                    

Наша пользовательская функция PHP timeStampToDateTimeпринимает метку времени в качестве первого параметра, который может быть текущей меткой времени или любой другой меткой времени (возможно, меткой времени из базы данных). Он использует часовой пояс и формат для возврата удобочитаемой строки даты и времени.

Основные Выводы

  • Мы можем использовать time()функцию для получения текущей метки времени и dateфункцию для форматирования метки времени.
  • DateTimeКласс — это объектно-ориентированный способ работы с датами и временем.
  • DateTimeZoneКласс предоставляет функциональность часового пояса, которая может использоваться с DateTimeклассом для работы с датами и временем.
  • Методы formatsetTimeZoneи setTimeStampявляются основными методами, которые мы можем использовать для преобразования метки времени в дату / время.
  • Связанные функции PHP: microtime
Понравилась статья? Раскажите друзьям:
Уважаемые посетители! Пожалуйста, оставляйте свои отзывы или комментарии. Они могут помочь другим пользователям.
Просмотров Просмотров: 427 ОтзывыОтзывы (0)

Оставте отзыв

Ваш адрес email не будет опубликован. Обязательные поля помечены *