При работе с датой и временем в PHP часто встает задача конвертирования даты и времени из одного формата в другой. В данном скрипте я покажу вам несколько способов, как можно конвертировать дату и время в PHP.

Преобразование временной метки в человекочитаемую дату и время в PHP

При работе с датой и временем в PHP часто встает задача конвертирования даты и времени из одного формата в другой. В данном скрипте я покажу вам несколько способов, как можно конвертировать дату и время в PHP.

Скрипт:

// самый простой способ получения человеко читаемой даты
echo date('m/d/Y',1319446702)

// а здесь получаем дату и время
echo date('m/d/Y H:i:s',1319446702);


// вариант с использованием ООП
$timestamp = 1319446702;
$datetimeFormat = 'Y-m-d H:i:s';

$date = new \DateTime();

// При необходимости использования временных зон
// добавляем второй аргумент DateTimeZone
// $date = new \DateTime('now', new \DateTimeZone('Europe/Moscow'));

$date->setTimestamp($timestamp);     // устанавливаем время
echo $date->format($datetimeFormat); // форматируем

А вот более изощренный способ конвертирования временной метки в PHP в человекочитаемый формат:

$time   = time()                 // допустим сейчас 1319446702
$year   = $time / 31556926 % 12; // год
$week   = $time / 604800 % 52;   // неделя
$hour   = $time / 3600 % 24;     // часы
$minute = $time / 60 % 60;       // минуты
$second = $time % 60;            // секунды

Так тоже можно:

// время, но по Гринвичу
$timestamp = 1319446702;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);

А вот еще один пример с ООП:

$timestamp = 1319446702;
$date = DateTime::createFromFormat('U', $timestamp);

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