2012-04-25 17 views
1

我有一個日期存儲在UTC時區的數據庫中,日期是現在幾天/小時/分鐘。 然後我需要計算現在和給定日期之間的時間差,並記住可能有不同的時區。獲取日期對象來自2日期之間的差異,依賴於時區

我一直在做以下工作,但由於時區未考慮在內,因此是錯誤的。

$interval = date_create('now')->diff(date_create($listing_end_date)); 
//$interval->d = days 
//$interval->h = hours 
//$interval->i = minutes 

我如何在考慮時區的情況下進行上述操作?

回答

2

您需要將第二個參數傳遞給date_create,以告知它在$listing_end_date中的日期所代表的時區。例如,假設字符串是UTC:

$interval = date_create('now')->diff(date_create($listing_end_date, 
               new DateTimeZone('UTC'))); 
+0

但是「現在」仍然是錯誤的部分嗎? – 2012-04-25 17:02:46

+0

或:$ interval = date_create('now',DateTimeZone :: UTC) - > diff(date_create($ listing_end_date,DateTimeZone :: UTC)) – 2012-04-25 17:03:42

+0

@ hsmoore.com - 問題說數據庫中的日期是UTC。 「現在」沒有時區擔心 - 現在是現在。 – 2012-04-25 17:04:59