我無法解釋這一點。我有以下幾點:怪異行爲計算時區差異
$time += $res['timezone']; (The array equates to -5*3600 (EST))
return gmstrftime('%c',$time);
當我回聲$ res ['timezone'],我得到「-5 * 3600」這是正確的。當我將數組值放在時間變量的前面時,我得到的時間不正確。如果我註釋掉數組值並將其替換爲-5 * 3600,我會得到正確的結果。爲什麼??
我無法解釋這一點。我有以下幾點:怪異行爲計算時區差異
$time += $res['timezone']; (The array equates to -5*3600 (EST))
return gmstrftime('%c',$time);
當我回聲$ res ['timezone'],我得到「-5 * 3600」這是正確的。當我將數組值放在時間變量的前面時,我得到的時間不正確。如果我註釋掉數組值並將其替換爲-5 * 3600,我會得到正確的結果。爲什麼??
因爲字符串「-5 * 3600」和表達式-5 * 3600不是一回事。你可以嘗試把eval
圍繞陣列值,就像這樣:
$time += eval($res['timezone']); //(The array equates to -5*3600 (EST))
return gmstrftime('%c',$time);
請注意,這是一個非常糟糕的主意,因爲它是既緩慢和不安全。如果你想在數組中存儲-5 * 3600,那麼計算該值並將結果存儲在數組中:
$res['timezone'] = -5*3600;
你得到的數組變量有什麼結果?只是說這是錯誤的並不意味着太多,如果我們不知道實際存在的是什麼,你能提供一個例子嗎? – animuson
你可以在什麼時候添加嗎?如果你迴應你從這兩種方法得到的紀元時間戳,也會很有幫助。 – Anthony
感謝您的評論。我想我只需要計算不同時區的數學,然後存儲結果。 – Jim