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 ""; } }