解决js newDate()苹果手机日期格式显示NaN

本文探讨了JavaScript中Date对象在不同设备上解析日期字符串的兼容性问题,特别是安卓和苹果手机上的差异。通过实验发现,含有时间的日期字符串在苹果手机上使用“/”作为分隔符才能正确解析,而纯日期则不受影响。此外,文章还提及了包含“T”和“Z”的ISO日期格式在各种设备上的解析情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文出处:https://blog.youkuaiyun.com/qq_32460751/article/details/85322434

例:2018-12-28 15:00:00

 1.   var  newDate = new Date("2018-12-28 15:00:00")

        这种获取的时间在安卓手机上显示是正常的,在苹果手机上显示NaN

 2.  var  newDate = new Date("2018/12/28 15:00:00")

       这种获取的时间在安卓和苹果手机上都显示正常

3.   转换时间格式     .replace(/\-/g, "/")

       var  newDate = new Date("2018/12/28 15:00:00".replace(/\-/g, "/"))

参考博客:https://blog.youkuaiyun.com/huangxiaoguo1/article/details/80082941

 

【补充】
1、经苹果手机测试,如果"只有日期不含时间的字符串"转换日期时,不管用“-”还是用“/”分隔都能顺利转换成日期,如果含“时间”,即必须要用“/”分隔

2、如果时间字符串包含“T”和"Z", 不管用"-"或“/”分隔,都能成功转换出时间,但会加上时区的差值
(详情参考:《js Date中的T和Z (实用,赞)》)


【2019-12-18 补充】
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值