2016-01-12 36 views
0

我需要更改日期時間字符串的時區。

這是我的代碼:

$date = new DateTime(); 
    $date->setTimezone(new DateTimeZone('Europe/Berlin')); 
    $date->setDate('2012-04-21'); 
    $date->setTime('12:42:59'); 
    echo $date->format('Y-m-d H:i:s'); 
    $date->setTimezone(new DateTimeZone('UTC')); 
    echo $date->format('Y-m-d H:i:s'); 

第一回波顯示: 「2016年1月12日10時40分03秒」

的功能的setDate也沒有影響。

也許有人可以幫助我嗎?

+0

你總是可以考慮使用createFromFormat如果要加載的日期和時間,動態地看PHP文件:http://php.net/manual/en/datetime.createfromformat.php –

回答

4

PHP Docs會幫助你

setDate()的參數是:

setDate (int $year , int $month , int $day) 

不是一個日期字符串

類似與論據setTime()

+0

尷尬,謝謝你的幫助 – Phil795

+0

@nagazi - 如果這個答案有幫助,請讓其他人知道接受它(點擊左邊的勾號)。 http://stackoverflow.com/help/accepted-answer –

0

PHP setDate Docs

setDate (int $year , int $month , int $day)

PHP setTime Docs

setTime (int $hour , int $minute , int $second)

$date = new DateTime(); 
    $date->setTimezone(new DateTimeZone('Europe/Berlin')); 
    $date->setDate(2012,04,21); 
    $date->setTime(12,42,59); 
    echo $date->format('Y-m-d H:i:s'); 
    echo '<br/>'; 
    $date->setTimezone(new DateTimeZone('UTC')); 
    echo $date->format('Y-m-d H:i:s'); 

見評估和演示演示:https://3v4l.org/14mqi