我試圖從00:00到24:00得到一個時間增量列表的選擇框。PHP活動預訂:以30分鐘爲增量獲取時間爲1小時
時間增量是秒的關聯數組到顯示時間是這樣的:
1800 => 00:30
然後,當有人選擇的日期,我打算將日期轉換(例如2016/9/16)轉換爲秒,然後將他們選擇的時間添加到這些秒以獲取其事件的日期時間。
爲此,我正在生成像這樣的時間增量。
public function getIntervals($start_time = '00:00', $end_time = '24:00', $increments = '30')
{
$today = strtotime(date('Y/m/d', time())); // seconds for 2016/9/16
$seconds_start = strtotime(date('Y/m/d', time()) . ' ' . $start_time) - $today;
$seconds_end = strtotime(date('Y/m/d', time()) . ' ' . $end_time) - $today;
while ($seconds_start < $seconds_end) {
$intervals[$seconds_start] = date("H:i", $seconds_start);
$seconds_start = strtotime('+' . $increments . ' minutes', $seconds_start);
}
return $intervals;
}
但是我的時間間隔是一個小時。
如果某人在早上2016年9月17日在01:00'中的在上午01:00秒的值選擇爲「」。
如果我添加 '' 到strtoseconds( '2016年9月17日'),我會 '在00:00 2016年9月17日' 得到的。
所以我在這裏,一個小時了。我認爲這是由於我的服務器時間設置爲巴黎+ 1小時,但我不知道如何解決它。
而不是'date(「H:i」,$ seconds_start);'try'date(「H:i」,$ today + $ seconds_start) ;' –
基本經驗法則:如果你正在做日期數學計算,並且結果總是出現60倍的精確倍數,那幾乎總是一個時區問題 –