小程序对时间处理方法做了限制
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