带时区的PHP日期时间
我有问题。我尝试在php中使用datetime。 我所做的:带时区的PHP日期时间
$now = new \DateTime();
当我的print_r的$now
我:
DateTime Object
(
[date] => 2016-12-01 05:55:01
[timezone_type] => 3
[timezone] => Europe/Helsinki
)
当我看着时钟我16:05
。我需要设置时区?我想使用布加勒斯特时区。我如何才能获得正确的日期和时间? THX提前
,就把这行的脚本上面的代码:
date_default_timezone_set('Europe/Bucharest');
有examples in the manual,您可以设置时区的DateTime类的这样的
$now = new \DateTime('now', new DateTimeZone('Europe/Bucharest'));
我有这样的:'DateTime对象 ( [日期] => 2016年12月1日6点09分43秒 [timezone_type] => 3 [时区] =>欧/布加勒斯特 ) ' –
但小时现在是'16:22' –
在布加勒斯特的时间是16:22 @ UTC 14:22 – RiggsFolly
你可以实例化使用setTimezone()
方法DateTime
类设置时区为欧洲/布加勒斯特,如下所示:
$now = new \DateTime();
$now->setTimezone(new DateTimeZone('Europe/Bucharest'));
这里的参考:
有两种方法来设置正确的时区。这是对象方式和程序方式。
实例
对象
$datetime = new DateTime();
$timezone = new DateTimeZone('Europe/Bucharest');
$datetime->setTimezone($timezone);
echo $datetime->format('F d, Y H:i');
程序
date_default_timezone_set("Europe/Bucharest");
$date = date('F d, Y H:i');
echo $date;
手册
更新
下面校验码,可它会为你工作:
<?php
date_default_timezone_set('Europe/London');
$datetime = new DateTime();
$timezone = new DateTimeZone('Europe/Bucharest');
$datetime->setTimezone($timezone);
echo $datetime->format('F d, Y H:i');
?>
我没有得到正确的时间 –
它给''December 01, 2016年16:35',现在是时候在布加勒斯特。 –
我得到'2016年12月01日06:25 ' –
检查我的答案,在这里你将得到2种方式如何得到正确的时间。 –