小程序对时间处理方法做了限制
js的日期转时间戳方法
Date.parse(日期字符串)可以转换为时间戳数字类型
- 我的目的是:用于计算与当前时间的差,返回xx分钟前,xx天前
因此还要把时间戳转为时间对象,来进行相减计算 new Date(时间戳数字类型)时间戳转时间对象
结果一步步排查问题,问题出在第一步日期转时间戳就没转换成功,直接气炸。
一、出现问题
真机调试小程序,日期转时间戳转换出来是
[NAN]
电脑开发者工具,一切正常
二、解决办法
- 百度了以下各种方法,发现是小程序设备对日期字符串的支持不一样
- 大部分手机只支持
2019/07/08 00:00:00 - 再来看看后端返回的时间格式
2019-09-08 00:00:00.0 - 那就把日期格式替换一下再试试
使用正则把
-替换成/
day = day.replace(/-/g, '/')
但是,我这里后端还莫名其妙返回多了个
.0
// 视情况使用
day =day.split('.')[0]
- 好。在小程序真机调试上再输出一下转换时间戳的方法
Date.parse(day) - 发现输出是正常的时间戳数字类型,不再是
[NAN]了 - 可以用来愉快的做时间计算了
三、补充:
- 获取本机当前时间戳要用
(new Date()).toString() - 以下方法在真机调试时无效
Date.now().toString() - 视情况无视数字转字符串方法
.toString() - 不转换为字符串,均为数字类型
如有建议和疑问可联系
QQ:1017386624
邮箱:1017386624@qq.com
本文主要探讨了在小程序中遇到日期转换为时间戳时出现NAN的问题。作者通过真机调试发现,部分手机设备不支持特定日期格式,通过调整日期格式和使用正则替换解决了此问题。此外,还提醒开发者注意在不同环境下时间戳的处理差异,确保时间计算的准确性。

5万+

被折叠的 条评论
为什么被折叠?



