您好,我有一個像歐洲/柏林這樣的特殊時區,我想在當前日期添加90天。之後,我發現了這個月的最後一天。php datetime/datetimezone substract 2小時而不是1
數據庫中的我的日期以UTC保存。這就是爲什麼我最終必須改變時區。
我的問題是,時區更改從歐洲/柏林和UTC之間的時間減去2小時。當我在修改UTC之前不修改日期時間對象時,它只會減去1小時。有人可以告訴我問題是什麼或正確的解決方案嗎?
//$timezone = 'Europe/Berlin';
private function getMaxTillDate($timezone)
{
$threemonth = new \DateTime('now', new \DateTimeZone($timezone));
$threemonth->setTime(23, 59, 59);
$threemonth->add(new \DateInterval('P0Y90DT0H0M'));
$maxday = $threemonth->format('t');
$threemonth->setDate($threemonth->format('Y'), $threemonth->format('m'), $maxday);
$threemonth->setTimezone(new \DateTimeZone('UTC'));
return $threemonth;
}
非常感謝您
有夏令時在德國至少半年,即UTC + 2小時。 – Sven
是的,我知道,但它沒有描述爲什麼PHP只減少1小時,如果我沒有操縱dateobject之前我改變時區。 –