<?php
// Дата и время в часовом поясе текущей машины
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Дата и время в заданном часовом поясе
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Текущая дата и время в часовом поясе текущей машины
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:sP') . "\n";
// Текущая дата и время в заданном часовом поясе
$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Передача метки времени эпохи Unix. Обратите внимание, что результат будет в часовом поясе UTC
$date = new DateTimeImmutable('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Несуществующие значения перетекают
$date = new DateTimeImmutable('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
Вывод приведённого примера будет похож на:
2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00