2
問題很簡單,但不知道爲什麼事情不是以一種簡單的方式工作。獲取PHP的當前日期時間爲時空
我想擁有特定時區的日期時間。我的服務器的時區爲America/Chicago
,但我想獲取不同時區的當前日期時間。
- 我不想
date_default_timezone_set
,因爲它會更改所有日期時間函數的時區。 - 我試着
$now = new DateTime(null, new DateTimeZone('Europe/Stockholm'));
與不同的時區值,但都返回相同的值。
考慮下面的代碼
$current_time = date('Y-m-d H:i:s');
echo "The current server time is: " . $current_time . "\r\n";
$now = new DateTime(null, new DateTimeZone('America/New_York'));
echo "America/New_York = ". $now->getTimestamp() . "\r\n";
$now = new DateTime(null, new DateTimeZone('Europe/Stockholm'));
echo "Europe/Stockholm = ". $now->getTimestamp() . "\r\n";
$now = new DateTime(null, new DateTimeZone('Asia/Muscat'));
echo "Asia/Muscat = ".$now->getTimestamp() . "\r\n";
$current_time = date('Y-m-d H:i:s');
echo "The current server time is: " . $current_time . "\r\n";
上面的代碼產生以下輸出
The current server time is: 2015-04-04 17:06:01
America/New_York = 1428185161
Europe/Stockholm = 1428185161
Asia/Muscat = 1428185161
The current server time is: 2015-04-04 17:06:01
而且所有三個值是一樣的,意味着new DateTimeZone(XYZ)
沒有工作。預期/要求的輸出應回顯那些特定時區的當前時間。
如果我缺少任何東西,請指教。
所以唯一的區別是使用)'$現在 - >格式()''而不是$現在 - > getTimestamp('的。我試着用'Y-m-d H:i:s'格式代替'c',現在一切看起來都不錯。標記接受的答案。謝謝親愛的。 – Ans 2015-04-04 22:35:42