1.前言
有個需求,想要把指定日期時間的字符串轉換成date類型
pc瀏覽器正常轉換,但手機瀏覽器 返回結果是 invalid Date 【無效的日期】
2.原因
出現這樣不兼容的原因其實很簡單,
pc瀏覽器可以識別 日期時間格式 :yyyy-MM-dd hh:mm:ss ,但是手機瀏覽器卻不行 ,
手機瀏覽器只能識別 yyyy/MM/dd hh:mm:ss
沒錯,就是分隔符的問題 , 將 - 換成 / 即可
3.使用源碼-心得
(1)獲取當前時間
let now = new Date();
(2)指定日期字符串轉date
let timeStr = "2020/4/9 12:37:22"
let da1 = new Date(timeStr);
(3)指定日期字符串轉時間戳,有兩種方法
let timeStr = "2020/4/9 12:37:22"
方法一:
let da2 = new Date(timeStr);
let timeStamp = da2.getTime();
方法二:
let timeStamp =Data.parse(timeStr);
(4)時間戳轉字符串 【字符格式可以隨意組合】
/** * 時間戳轉換成日期 */ function changeTime(timestamp) { if (timestamp != null) { //時間戳為10位需*1000,時間戳為13位的話不需乘1000 let date = new Date(timestamp); let Y = date.getFullYear() + '/'; let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '/'; let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) ; return Y + M + D; } else { return ""; } }
/** * 時間戳轉換成日期時間 */ function changeTime(timestamp) { if (timestamp != null) { //時間戳為10位需*1000,時間戳為13位的話不需乘1000 let date = new Date(timestamp); let Y = date.getFullYear() + '-'; let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'; let s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()); return Y + M + D + h + m + s; } else { return ""; } }
