2017-01-23 76 views

回答

2

沒有爲PHP中的DateTime::createFromImmutable()方法拉請求,但它看起來像它一直沒有整合尚未:
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

@Glavić我編輯的答案:-) –

+0

我會'新\日期時間($ immutable->格式(\日期時間:: ATOM))'。這是我現在可以想象的整潔和最少的數據丟失(時區等)。 –

0

你可以做到這一點作爲一個班輪:

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