Конвертация timestamp'a (unixtime) в экземпляр класса DateTime

07.08.2010 13:31 / Артём Волк / 1457 просмотров / ...

Встроенный PHP-класс DateTime наконец-то определил стандартный интерфейс для работы с датой и временем в PHP. Однако, конвертация значения даты в формате Unix time в экземпляр этого класса не так очевидна.

Первый способ:

$unixtime = time();
// Второй параметр (часовой пояс) игнорируется: время будет в UTC
$now = new DateTime('@' . $unixtime, new DateTimeZone('Europe/Kiev'));
echo($now->format(DATE_ATOM)); // Пример вывода: 2010-08-07T10:26:40+00:00

Второй способ:

$unixtime = time();
// Дата будет в нужном часовом поясе
$now = new DateTime(date(DATE_ATOM, $unixtime), new DateTimeZone('Europe/Kiev'));
echo($now->format(DATE_ATOM)); // Пример вывода: 2010-08-07T13:26:40+03:00

Обратите внимание на то, что полученные объекты используют разные часовые пояса.