嘿,老周,我在後臺設置的這個活動是明天零點開始的,你這個頁面上活動開始的倒計時怎麼多出了8個小時?前端
接口返回的活動開始時間是'2019-06-18'
,前端需將這個日期轉化爲時間戳來計算當前時間到該日期的倒計時,代碼以下:瀏覽器
var timestamp = new Date('2019-06-18').getTime(); console.log(timestamp ); // 1560816000000
但實際上正確的時間戳應該是1560787200000
,多出了28800000
毫秒即8個小時!
讓咱們來看看是哪裏在做妖:code
var date = new Date('2019-06-18'); console.log(date); // Tue Jun 18 2019 08:00:00 GMT+0800 (中國標準時間)
預期的Tue Jun 18 2019 00:00:00 GMT+0800 (中國標準時間)
變成了Tue Jun 18 2019 08:00:00 GMT+0800 (中國標準時間)
對象
將時間格式從YYYY-MM-DD
轉爲YYYY/MM/DD
:接口
var dateStr = '2019-06-18'; dateStr = dateStr.replace(new RegExp(/-/gm), "/"); console.log(dateStr); // '2019/06/18' var date = new Date(dateStr); console.log(date); // Tue Jun 18 2019 00:00:00 GMT+0800 (中國標準時間)
此時的Date對象的值便符合預期了。ip
1.JavaScript中經過Date對象獲取時間戳的經常使用方法:get
var timestamp1 = new Date('2019/06/18').getTime(); var timestamp2 = new Date('2019/06/18').valueOf(); var timestamp3 = +new Date('2019/06/18'); // 此處本質是調用了valueOf()方法 console.log(timestamp1); // 1560787200000 console.log(timestamp2); // 1560787200000 console.log(timestamp3); // 1560787200000
2.safari瀏覽器環境下是不支持YYYY-MM-DD
這種格式的console