`

关于倒计时new Date().getTime()出现NaN

 
阅读更多

之前的倒计时是这么写的

 

//计算剩余时间  time-截止时间;serverTime--服务器时间,id-要显示时分秒对应的父节点Id

function countRestTime(time,serverTime,id){ 

var day_elem = $(id).find('.day'); 

var hour_elem = $(id).find('.hour'); 

var minute_elem = $(id).find('.minute'); 

var second_elem = $(id).find('.second'); 

var end_time = new Date(time).getTime();//月份是实际月份-1 

var start_time= new Date(serverTime).getTime();

var sys_second = (end_time-start_time)/1000; 

function startTime(){ 

if (sys_second > 1) { 

sys_second -= 1; 

var day = Math.floor((sys_second / 3600) / 24); 

var hour = day*24 + Math.floor((sys_second / 3600) % 24); 

var minute = Math.floor((sys_second / 60) % 60); 

var second = Math.floor(sys_second % 60); 

day_elem && $(day_elem).text(day);//计算天 

$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时 

$(minute_elem).text(minute<10?"0"+minute:minute);//计算分钟 

$(second_elem).text(second<10?"0"+second:second);//计算秒杀 

} else { 

 clearInterval(timer); 

}; 

timer = setInterval(startTime,1000);

startTime();

 

以上代码在google浏览器,安卓手机微信是没任何问题的,但是在苹果手机或者苹果微信异常;

问题出在new Date(time).getTime();返回的是NaN;

 

解决方案:

new Date(time).getTime();返回的是NaN;

改为:

eval("new Date("+ time.replace(/\D+/g,",")+")").getTime(); 

则在google浏览器  安卓、安卓微信,苹果浏览器 ,苹果微信统统秒杀!  

//计算剩余时间

function countRestTime(time,serverTime,id){ 

var day_elem = $(id).find('.day'); 

var hour_elem = $(id).find('.hour'); 

var minute_elem = $(id).find('.minute'); 

var second_elem = $(id).find('.second'); 

var end_time =  eval("new Date("+ time.replace(/\D+/g,",")+")").getTime(); 

var start_time= eval("new Date("+ serverTime.replace(/\D+/g,",")+")").getTime();

var sys_second = (end_time-start_time)/1000; 

function startTime(){ 

if (sys_second > 1) { 

sys_second -= 1; 

var day = Math.floor((sys_second / 3600) / 24); 

var hour = day*24 + Math.floor((sys_second / 3600) % 24); 

var minute = Math.floor((sys_second / 60) % 60); 

var second = Math.floor(sys_second % 60); 

day_elem && $(day_elem).text(day);//计算天 

$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时 

$(minute_elem).text(minute<10?"0"+minute:minute);//计算分钟 

$(second_elem).text(second<10?"0"+second:second);//计算秒杀 

} else { 

 clearInterval(timer); 

}; 

timer = setInterval(startTime,1000);

startTime();

分享到:
评论

相关推荐

    JAVA new Date()或Calendar.getInstance().getTime()得到的时间不对

    在Java编程中,`new Date()` 和 `Calendar.getInstance().getTime()` 都是获取当前系统时间的方法,但有时可能会出现获取到的时间与预期不符的情况。这种问题通常与时区设置、系统时间、Java运行环境以及代码逻辑...

    关于js new Date() 出现NaN 的分析

    然而,在特定的场景和浏览器中,使用`new Date()`可能会遇到返回值是`NaN`(Not a Number的缩写,表示“不是一个数字”)的情况。本文将从一个实际问题出发,详细分析这一问题的原因和解决办法。 问题描述: 在项目...

    javascript 倒计时

    //开启倒计时变量 if(activittype==1){ var dqTime='2011-06-17 10:20:00';//倒计时的时间 var nian=dqTime.substr(0,4);//年 var yue=parseInt(dqTime.substr(5,2),10)-1;//月(parseInt(x,10)将变量转成10...

    解决苹果ios用js的Date()出现NaN的问题

    ios使用如下方法获得NaN,安卓手机则是正常计算,解决方法是换个这个时间的格式 new Date(2017-04-28 23:59:59).getTime() 换成如下方式就正常了,就是‘-... 您可能感兴趣的文章:关于js new Date() 出现NaN 的分析

    javascript经典特效---倒计时载入页面.rar

    在网页设计中,倒计时加载页面是一种常见的特效,它能为用户提供一个明确的等待指示,提高用户体验。这个名为"倒计时载入页面.rar"的压缩包包含了一个实现此类特效的HTML文件。 倒计时加载页面的核心在于JavaScript...

    原生js实现简单的一款倒计时计时插件.zip

    在JavaScript中,`Date`对象是处理日期和时间的基础,可以获取当前时间的时间戳(单位为毫秒)通过`new Date().getTime()`。倒计时或计时器的工作原理就是不断比较当前时间戳与目标时间戳,计算差值并更新显示。 1....

    HTML5网页倒计时代码特效.zip

    开发者可能使用了JavaScript的Date对象来计算当前时间与设定目标时间之间的差值,并通过定期更新DOM(文档对象模型)来显示变化的倒计时数值。例如,下面是一个简单的JavaScript倒计时函数示例: ```javascript ...

    js设置日期倒计时代码.zip

    总之,利用JavaScript的Date对象和时间戳,我们可以轻松地实现一个自定义日期时间的倒计时功能。这在网页开发中非常实用,例如倒计时活动、考试倒计时等场景。通过理解和掌握这个技术,你可以创建出更加动态和交互性...

    js实现的自定义日期时间倒计时特效源码.zip

    var t = target.getTime() - new Date().getTime(); return { total: t, days: Math.floor(t / (1000 * 60 * 60 * 24)), hours: Math.floor((t % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)), minutes: Math....

    java.sql.date与java.util.date.pdf

    例如,new Java.sql.Date(new Java.util.Date().getTime())将得到当前日期的0点0分0秒的时间戳。 在实际应用中,我们通常需要将Java.util.Date转换为Java.sql.Date,以便将日期和时间插入到数据库中。下面是一些...

    彩色方块倒计时JS代码.zip

    通过`new Date()`创建一个新的Date对象,然后可以使用`getTime()`方法获取从1970年1月1日到当前时间的毫秒数。 2. **时间戳**:时间戳是一个表示特定时间的数字,通常以自1970年以来的秒数表示。在JavaScript中,...

    js自定义倒计时日期代码.zip

    在JavaScript编程中,倒计时日期是一个常见的需求,比如用于活动预告、考试倒计时或者产品上线倒计时等。本资源"js自定义倒计时日期代码.zip"提供了一个可运行且允许二次修改的解决方案,它涉及到的技术点主要包括...

    jquery数字读秒的倒计时代码.zip

    1. **初始化时间**:首先,你需要确定倒计时的目标时间,这可以通过创建一个新的Date对象来设定,例如`var endTime = new Date("2023年12月31日23:59:59");`。 2. **计算差值**:接着,获取目标时间与当前时间之间...

    倒计时插件-jquery.zip

    倒计时计算涉及日期对象的处理,例如`Date`对象的`getTime()`方法用于获取当前时间戳,然后与目标日期的时间戳进行比较,计算出剩余时间。 在JavaScript中,时间处理可能涉及到`Date.prototype.getTimezoneOffset()...

    javascript 元旦倒计时的代码

    javascript 元旦倒计时的代码 var yd_date = new Date("01/01/2024"); var yd_time = yd_date.getTime(); var one_second = 1000; var one_minute = one_second * 60; var one_hour = one_minute * 60; ...

    基于jQuery实现的倒计时插件源码.zip

    var now = new Date().getTime(); var remainingTime = endTime - now; if (remainingTime ) { // 倒计时结束 clearInterval(intervalId); element.text('倒计时结束'); return; } var days = Math.floor...

    基于javascript显示当前时间以及倒计时功能_.docx

    var countDownDate = new Date(targetTime).getTime(); var countdownFunction = setInterval(function() { var now = new Date().getTime(); var distance = countDownDate - now; var days = Math.floor...

    jQuery 60秒倒计时精确到毫秒.zip

    var targetTime = new Date().getTime() + 60 * 1000; // 目标时间:60秒后 var timer = setInterval(function () { var currentTime = new Date().getTime(); var remainingTime = targetTime - currentTime; ...

Global site tag (gtag.js) - Google Analytics