2016-12-01 127 views
0

我有問題。我嘗試在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提前

+0

檢查我的答案,在這裏你將得到2種方式如何得到正確的時間。 –

回答

0

,就把這行的腳本上面的代碼:

date_default_timezone_set('Europe/Bucharest'); 
1

examples in the manual,您可以設置時區的DateTime類的這樣的

$now = new \DateTime('now', new DateTimeZone('Europe/Bucharest')); 
+0

我有這樣的:'DateTime對象 ( [日期] => 2016年12月1日6點09分43秒 [timezone_type] => 3 [時區] =>歐/布加勒斯特 ) ' –

+0

但小時現在是'16:22' –

+0

在布加勒斯特的時間是16:22 @ UTC 14:22 – RiggsFolly

0

你可以實例化使用setTimezone()方法DateTime類設置時區爲歐洲/布加勒斯特,如下所示:

$now = new \DateTime(); 
$now->setTimezone(new DateTimeZone('Europe/Bucharest')); 

這裏的參考:

0

有兩種方法來設置正確的時區。這是對象方式和程序方式。


實例

對象

$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'); 
?> 
+0

我沒有得到正確的時間 –

+0

它給''December 01, 2016年16:35',現在是時候在布加勒斯特。 –

+0

我得到'2016年12月01日06:25 ' –