PHP中的DateTime与时区

Har*_*cla 2 php datetime date php-5.3

我有个问题。我尝试在php中使用datetime。我做了:

$now = new \DateTime();
Run Code Online (Sandbox Code Playgroud)

当我print_r $now我有:

DateTime Object
(
  [date] => 2016-12-01 05:55:01
  [timezone_type] => 3
  [timezone] => Europe/Helsinki
)
Run Code Online (Sandbox Code Playgroud)

当我看时钟的时候16:05。我需要设置时区吗?我想使用布加勒斯特时区。如何获得正确的日期和时间?提前Thx

Rig*_*lly 7

手册中示例,您可以像这样在 DateTime 类的实例化上设置时区

$now = new \DateTime('now', new DateTimeZone('Europe/Bucharest'));
Run Code Online (Sandbox Code Playgroud)


Kar*_*ica 7

您可以通过两种方式设置正确的时区。它是对象方式和程序方式。


例子

宾语

$datetime = new DateTime();
$timezone = new DateTimeZone('Europe/Bucharest');
$datetime->setTimezone($timezone);
echo $datetime->format('F d, Y H:i');
Run Code Online (Sandbox Code Playgroud)

程序

date_default_timezone_set("Europe/Bucharest");
$date = date('F d, Y H:i');
echo $date;
Run Code Online (Sandbox Code Playgroud)

说明书


更新资料

检查下面的代码,可能对您有用:

<?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');
?>
Run Code Online (Sandbox Code Playgroud)


小智 2

将这行代码放在脚本上方:

date_default_timezone_set('Europe/Bucharest');
Run Code Online (Sandbox Code Playgroud)