JavaScript `new Date()` 方法移动端 `兼容 ios`

4,184 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

JavaScript new Date() 方法移动端 兼容 ios

我们在一些网站中经常遇到时间节点显示为 NaN的问题, 这里一些是bug, 还有一些是时间格式的兼容问题

在实际工作开发中, 用到的时间处理一般都是 JavaScript 框架 库, 但是在原生开发时使用到了 new Date() 这个原生方法进行时间处理时候, 遇到了开发环境时间正确, 在 果机上却出现了时间错误的 bug, 这里是 ios系统的时间格式兼容问题. 如下问题解决方案:

两种时间格式:

dateType1 = `2019/11/09 10:13:21`
dateType2 = `2019-11-09 10:13:21`

☆☆解决☆☆: 安卓系统可兼容两种格式, ios 系统仅支持 2019/11/09 10:13:21 格式

let str = '2019-11-09 10:13:21' // 这种格式 ios 不兼容使用 new date() ==> NaN
str = str.replace(/\-/g, '/') // 兼容ios '2019/11/09 10:13:21'
let iosstr = '2019/11/09 10:13:21' // 兼容ios写法

将这个时间字符串 "2019-11-09 10:13:21",转换成标准时间格式: Tue May 15 2018 14:06:15 GMT+0800 (中国标准时间)

首先是在安卓上的直接 new Date("2019-11-09 10:13:21"), 这样就可以把时间转换成标准格式:

在这里插入图片描述

这个地方,安卓系统两种时间字符串格式都是可以实现转换的

但是在 ios 平台下 "2019-11-09 10:13:21" 这种时间字符无法实现转换的,

ios 平台只识别 "2019-11-09 10:13:21" 这种时间字符串格式格式, 所以我们需要对字符串做一个转换

let str = '2019-11-09 10:13:21'
str = str.replace(/\-/g, '/') // str --> '2019/11/09 10:13:21'
new Date(str) // --> Sat Nov 09 2019 10:13:21 GMT+0800 (中国标准时间)

这样就能被 ios 平台识别了!