【兼容问题 | 小程序】解决Date.parse()获取时间戳IOS不兼容的问题

在写小程序时,发现一个神奇的bug,就是Date.parse()获取的时间戳IOS不兼容,显示为NaN。

平常像下面这么写,例如:

var timeStr0 = '2018-6-21';
    var timeStr1 = '2018-06';
    var timeStr3 = '2018-6';
    var timeStr2 = '2018-06-21 23:59:59';
    var timeStamp0 = Date.parse(timeStr0) / 1000;
    console.log("timeStamp0:" + timeStamp0); //1529510400
    var timeStamp1 = Date.parse(timeStr1) / 1000;
    console.log("timeStamp1:" + timeStamp1); //1527811200----是2018/6/1 8:0:0时间戳
    var timeStamp3 = Date.parse(timeStr3) / 1000;
    console.log("timeStamp3:" + timeStamp3); //1527782400---是2018/6/1 0:0:0时间戳
    var timeStamp2 = Date.parse(timeStr2) / 1000;
    console.log("timeStamp2:" + timeStamp2); //1529596799

但是到了ios版本里面,时间戳都变成了NaN,安卓版本和微信开发者工具中显示正常。

 

问度娘了一会儿之后,发现因为ios只识别"2017/01/01"这样的日期格式;所以,解决办法如下:(用正则把“-”替换成“/”)

var timeStr = '2018-06-21';
    var timeStamp = Date.parse(timeStr.replace(/-/g, '/'))/1000;
    console.log("timeStamp:" + timeStamp);

总结:尽量还是要用"2017/01/01"这样的日期格式来转时间戳,避免了兼容问题,同时也避免掉了'2018-6'与'2018-06'转时间戳不同的问题。

 

启蒙链接:https://blog.csdn.net/zqtsx/article/details/74331076

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值