0

set_time_zone() 是导致问题

$messagedate = \Datetime variable\
$messagedate_tz = $messagedate;

$messagedate_tz->set_time_zone('UTC');
$messagedate_tz->set_time_zone('America/Goose_Bay');

当我执行这个。messagedate 的时间也重置为 America/Goose_Bay。

请帮忙

4

1 回答 1

1

假设\Datetime variable\您指的是 DateTime 类(或任何其他类,就此而言)的对象,您的问题是$messagedate_tz = $messagedate;创建对同一对象的第二个引用,它不会创建新对象。

您应该使用$messagedate_tz = $messagedate->clone;(同样,假设它是一个 DateTime 对象;其他类可能有不同的方法名称来创建副本)来创建一个与原始对象相同的新对象,然后可以在不影响原始对象的情况下对其进行修改。

于 2013-04-03T15:53:32.853 回答