2017-01-23 5 views

ответ

2

Существует запрос выдвижная для метода DateTime::createFromImmutable() в PHP, но, похоже, это не была интегрирована еще:
https://www.reddit.com/r/PHP/comments/300tib/datetimecreatefromimmutable_method_php_7_merged/?st=iyac0id6&sh=8342be48
и https://github.com/php/php-src/pull/1145

Так что это, вероятно, самый простой способ прямо сейчас:

$dateTime = new \DateTime(); 
$dateTime->setTimestamp($dateTimeImmutable->getTimestamp()); 

Если вам необходимо включить часовой пояс информацию:

$dateTime = new \DateTime(null, $dateTimeImmutable->getTimezone()); 
$dateTime->setTimestamp($dateTimeImmutable->getTimestamp()); 
+0

Это не «перевод» часовые пояса информации ... –

+0

@ Glavic Я редактировал ответ :-) –

+0

Я бы 'новый \ DateTime ($ immutable-> формат (\ DateTime :: ATOM)) '. Это аккуратная и наименьшая потеря данных (часовой пояс и т. Д.). Я могу представить себе на данный момент. –

0

Вы можете сделать это как однострочник:

$dateTime = new DateTime("@{$dateTimeImmutable->getTimeStamp()}");