我的情況是總是獲得一天後的日期。 例如,我有這個值-243219600
其相對於日期18/04/1962PHP中的日期函數總是在日期後面一天排除
一個
date('d/m/Y', -243219600);
輸出後:
17/04/1962
-243219600從秒1970年1月1日00:00:00 UTC在javascript是 here你得到正確的日期。
我的情況是總是獲得一天後的日期。 例如,我有這個值-243219600
其相對於日期18/04/1962PHP中的日期函數總是在日期後面一天排除
一個
date('d/m/Y', -243219600);
輸出後:
17/04/1962
-243219600從秒1970年1月1日00:00:00 UTC在javascript是 here你得到正確的日期。
date()
的輸出取決於配置的時區。如果你添加時間和時區,你可以看到它。在我的情況下,它是CET:
date()
echo date('d/m/Y H:m:i T', -243219600);
//prints: 18/04/1962 00:04:00 CET
date()
使用UTC
,使用date_default_timezone_set
:date_default_timezone_set('UTC');
echo date('d/m/Y H:m:i T', -243219600);"
17/04/1962 23:04:00 UTC
(你看,因爲它是UTC的午夜前一小時,日期取決於該時區)
DateTime
:如果它是由一個Unix時間戳構成的DateTime
類總是使用UTC:
注:
$timezone
參數和當前時區被忽略,當$time
參數或者是UNIX時間戳(例如, @ 946684800)或指定時區(例如2010-01-28T15:00:00 + 02:00)。
所以,你可以使用下面的代碼,以及:
echo (new DateTime('@-243219600'))->format('d/m/Y');
檢查您的PHP的時區,將其設置爲與您的計算機相同(因爲您使用JavaScript)。
我得到適當的'18/04/1962'作爲輸出,當我嘗試你的代碼。 – jitendrapurohit
我得到了17日 - 我正在使用UTC。具體用'$ dt = new DateTime(); $ DT->的setTimestamp(-243219600); echo $ dt-> format('r');'我得到'1962年4月17日星期二23:00:00'。所以,非常接近18日,但並不完全。 –
@JitendraPurohit你能告訴我你正在使用什麼時區? – Alaeddine