我遇到了一個奇怪的問題,這是一個更大的問題的道路上的原因。我將定義最初的問題(這不是一個真正的問題),接下來是由它引發的問題。Javascript日期對象不同Mac和PC之間
我有一個JavaScript功能限定日期變量並且將其作爲數據在後請求的PHP函數:
var currentdate = new Date();
var showDailyEvents = function() {
$.post(
'/php/returnEvents.php',
{
myDate: currentdate,
period: "daily"
},
"html"
);
};
showDailyEvents();
當我的MAC(在所有瀏覽器)上運行此,的currentdate是「2017年3月17日星期五15:37:29 GMT-0700(PDT)」。但是,當我在PC上運行它時(特別是Windows 7),當前日期爲「2017年3月17日星期五15:37:29 GMT-0700(太平洋夏令時)」。當這個變量傳遞到PHP函數,我嘗試將其轉換爲一個時間戳,像這樣:
$startDay = strtotime($_POST['myDate']);
但是,當我檢查變量,在蘋果它是PC則返回假1489790249一會兒。兩臺計算機上變量之間的唯一區別是PDT與太平洋夏令時間。
有沒有人遇到過這個問題?或者有任何想法如何正確解決這個問題?
編輯:請注意,我需要
爲什麼不讓客戶給你發送時間戳? http://stackoverflow.com/questions/221294/how-do-you-get-a-timestamp-in-javascript – Webbanditten
@Webbanditten我可能會誤解,但不是我爲什麼這麼做?新的Date()對象正在客戶端的瀏覽器上創建,然後在請求中發送。 – ConorBaumgart
不,你在完整的日期解析爲一個字符串與時區信息到一個PHP方法,然後將文本轉換爲Unix時間戳。 http://php.net/manual/en/function.strtotime.php我在想,PHP方法不喜歡Windows字符串,因此我的想法是將日期轉換爲Unix時間戳,然後將其發送到服務器。 – Webbanditten