Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
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。
请帮忙
假设\Datetime variable\您指的是 DateTime 类(或任何其他类,就此而言)的对象,您的问题是$messagedate_tz = $messagedate;创建对同一对象的第二个引用,它不会创建新对象。
\Datetime variable\
$messagedate_tz = $messagedate;
您应该使用$messagedate_tz = $messagedate->clone;(同样,假设它是一个 DateTime 对象;其他类可能有不同的方法名称来创建副本)来创建一个与原始对象相同的新对象,然后可以在不影响原始对象的情况下对其进行修改。
$messagedate_tz = $messagedate->clone;