我使用strtotime
獲得一些相對時間戳使用字符串描述的時間量向前或向後移動,即「+1小時15分鐘」,「-2小時,45分鐘」。strtotime返回意外的結果,相對時間戳
這完美的作品:
$ds = strtotime('02/20/11 09:30:00 -1 hour');
但是,如果是 「-1小時15分鐘」,strtotime
似乎是減去小時,然後加入15分鐘。
我用逗號試了一下:http://codepad.org/3dq7c2GM
我來到這裏,看到了previous question about this,並嘗試了沒有逗號:http://codepad.org/G8gm8E84
仍然沒有運氣。我試過使用相關參數:http://codepad.org/nwZ9ZqOv沒有。
我發現我自己的解決方案,這是非常不直觀的,我不確定如果我失去了一些東西,或者甚至不正確地接近這個。工作版本最終被:
$ds = strtotime('02/20/11 09:30:00 -1 hour -15 minutes');
我失去了一些東西在這裏?在docs中沒有提及這種行爲。另外,有沒有更好的方法來使用基於字符串的持續時間來獲取這樣的相對時間戳?
編輯
編輯追加這些字符串的來源 - 他們是從通過AJAX用戶界面的到來。有一些窗體控件具有+/-按鈕,以15分鐘的間隔在顯示區域中增加/減少持續時間。當它們發生變化時,AJAX請求會將這些值觸發到服務器,並通過strtotime
轉換爲曆元時間戳,然後存儲在數據庫中。
夏時制開始的日期? – 2011-02-17 15:56:21
2001年,DST從3月13日星期日開始,到11月6日星期日結束。我很難看出DST會如何影響它 - 這很清楚發生了什麼。我想知道爲什麼,如果可能的話,以及是否有更好的方法。 – 2011-02-17 16:03:55