В этом руководстве мы рассмотрим как изменить php форматирование времени, используя пользовательское форматирование. Мы начнем с получения текущей метки времени и отображения ее с помощью простой функции даты. Далее мы будем использовать текущую метку времени для создания объекта Date Time, форматирования даты и ее отображения. Затем мы рассмотрим некоторые параметры форматирования даты и времени, а затем класс Date Time Zone. И, наконец, мы создадим функцию для преобразования метки времени в DateTime с параметрами часового пояса и формата даты.
В Этой Статье
- Получение метки времени
- Временная метка в объект 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
классом для работы с датами и временем.- Методы
format
setTimeZone
иsetTimeStamp
являются основными методами, которые мы можем использовать для преобразования метки времени в дату / время. - Связанные функции PHP: microtime