You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript倒计时器在IE浏览器中显示NaN问题求助

解决IE浏览器中倒计时器显示NaN的问题

嗨,这个问题我太熟悉了!之前帮好几个开发者解决过IE里倒计时显示NaN的坑,核心原因就是IE对日期字符串的解析逻辑和现代浏览器不兼容!

你代码里用的日期格式"2018-05-25 12:00:00",Chrome、Firefox这些现代浏览器能按照ECMAScript规范正常解析,但IE(尤其是IE11及更早版本)不买账——它会把这种带空格的短横线分隔格式判定为无效日期,调用getTime()自然返回NaN,后续所有倒计时计算结果也就跟着变成NaN了。

两种靠谱的修复方案任你选:

  • 方案一:改用IE支持的日期字符串格式
    把短横线换成斜杠,或者把空格换成T(符合ISO 8601标准,IE也能识别),比如:

    // 斜杠+空格格式
    var countDownDate = new Date("2018/05/25 12:00:00").getTime();
    // 或者ISO 8601格式
    var countDownDate = new Date("2018-05-25T12:00:00").getTime();
    
  • 方案二:手动传参构造Date对象(最稳妥)
    完全避开字符串解析的兼容性问题,直接传入年、月、日、时、分、秒参数,注意月份是从0开始计数的(比如5月对应4):

    // 参数顺序:年, 月(0-11), 日, 时, 分, 秒
    var countDownDate = new Date(2018, 4, 25, 12, 0, 0).getTime();
    

快速验证

修改后在IE里测试一下,new Date(...)应该能返回有效的日期对象,调用getTime()会输出一串数字时间戳,这样后续的倒计时计算就不会再出现NaN啦。

内容的提问来源于stack exchange,提问作者ThePiedPhper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:36:02