gpt4 book ai didi

PHP DateTime 默认时区

转载 作者:行者123 更新时间:2023-12-02 05:41:44 24 4
gpt4 key购买 nike

我最近才开始在 PHP 中使用 DateTime 对象,现在我无法弄清楚。

我以为DateTime会考虑我设置的默认时区 date_default_timezone_set ,但显然它没有:

date_default_timezone_set('Europe/Oslo');
$str = strtotime('2015-04-12');
$date = new DateTime("@".$str);
$response['TZ'] = $date->getTimezone()->getName();
$response['OTZ'] = date_default_timezone_get();
$response['Date'] = $date->format('Y-m-d');

echo json_encode($response);

这是我得到的回应:
{
"TZ":"+00:00",
"OTZ":"Europe\/Oslo",
"Date":"2015-04-11"
}

将正确的 DateTimeZone 传递给构造函数也不起作用,因为 DateTime 在给定 UNIX 时间戳时会忽略它。 (如果我将常规日期字符串传递给构造函数,它会起作用)。

如果我这样做,日期会正确显示:
$date->setTimezone(new DateTimeZone("Europe/Oslo"));
我真的不想在每次处理约会时都必须传递时区,但是从看起来我可能不得不这样做吗?

最佳答案

我认为这是因为这里写的内容:
http://php.net/manual/en/datetime.construct.php

Note: The $timezone parameter and the current timezone are ignored when the $time parameter either is a UNIX timestamp (e.g. @946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).



您可以使用 UNIX 时间戳为构造函数中的 DateTime 对象设置日期。

尝试使用这种方式设置 DateTime 对象
$date = new DateTime('2000-01-01');

关于PHP DateTime 默认时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29543729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com