js 对 date 和 字符串 类型的正确互换【各浏览器兼容】,解决invalid Date

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"

方法一:

扫描二维码关注公众号,回复: 10625394 查看本文章

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

猜你喜欢

转载自www.cnblogs.com/c2g5201314/p/12666161.html
今日推荐