小程序时间处理方法无效NAN

本文主要探讨了在小程序中遇到日期转换为时间戳时出现NAN的问题。作者通过真机调试发现,部分手机设备不支持特定日期格式,通过调整日期格式和使用正则替换解决了此问题。此外,还提醒开发者注意在不同环境下时间戳的处理差异,确保时间计算的准确性。

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

小程序对时间处理方法做了限制


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值