我有兩個日期(從數據時間選擇器),我用PHP發送到這個相同的頁面(我在表單中使用隱藏的<input>
)發送。PHP日期和POSIX日期
$(function(){
flatpickr('#calendar',{
mode: "range",
onChange: function(dates) {
if(dates.length>1){
$("#formdate .from").val(+dates[0]/1000);
$("#formdate .to").val((+dates[1])/1000);
$("#formdate").submit();
}
}
});
});
這些日期是POSIX日期,例如1490569200
是2017-03-27 00:00:00
。
你可以看到我將它們除以1000;這是因爲我在MySQL中使用它們,所以它需要位於second
而不是millisecond
。
這裏是我的日期時間選擇器:
當我這個有效第二次約會(這裏的第26號),它可撥打以上功能,並刷新頁面。如果我做了我的POSIX日期的回聲,我得到以下內容:
1488326400, 1490486400
分別是3月1日和26日(正常行爲)。現在,我使用下面的函數在PHP中把它們轉換以可讀格式:
echo date('l jS \of F Y',$from);
echo date('l jS \of F Y',$to);
它顯示我以下內容:
Wednesday 1st of March 2017
Sunday 26th of March 2017
所以直到在這裏,一切正常!
但現在,如果我拿起一個日期等於或高於月27日,這裏就是的發生:
我做我的POSIX日期的回聲: 1490313600, 1490655600
它們分別是第24和第28(如此沒問題)。
但是,當我使用的可讀格式PHP日期:
echo date('l jS \of F Y',$from);
echo date('l jS \of F Y',$to);
Friday 24th of March 2017
Monday 27th of March 2017
事實上,每一個日期我挑等於或以上27日將顯示爲前一天。
如果我使用echo date('l jS \of F Y',1490655600)
,同樣的問題,它會給我第二十七和第二十八。
怎麼了?
_「有什麼問題?」 - 有人從未聽說過冬季/夏季。 – CBroe
哦,親愛的......我花了幾個小時試圖理解它爲什麼不起作用,這是一件簡單的事情......你知道如何在PHP中處理這個問題嗎? – Will
聽起來像你的PHP代碼並不尊重大多數國家在週末從冬季到夏季的過渡(星期天26:00 02:00 AM變成03:00 AM),而你的Javascript代碼**是**考慮到。如果您在日期格式中添加小時和分鐘,3月27日00:00的日期是否顯示3月26日23:00? **編輯**有人打我:-) – rickdenhaan