js 中 Date.now()相减会出现 NaN 的问题,求教

问题描述

js 中 Date.now()相减会出现 NaN 的问题,求教

首先js代码如下
setTimeout(function() {
var a = 0,wdw1;
$($(".yscroll_list_left li")[0]).clone(!0).insertAfter($($(".yscroll_list_left li")[$(".yscroll_list_left li").length - 1]));
var len = $(".yscroll_list_left li").length;
b();
var old = Date.now();
function b() {
a -= 44;
if(a >= 44 * -(len - 2) ){
console.log("1_1",a,Date.now()-old);
$(".yscroll_list_left").animate({marginTop: a}, 2000);
console.log("1_2",a,Date.now()-old);
}
else{
$(".yscroll_list_left").animate({marginTop: a}, 2000, function() {
a = 0;
$(".yscroll_list_left").css({
marginTop: 0
})
});
}
wdw1 = setTimeout(b,3000);
}
}, 0);
在chrome中执行结果如下
test.html:42 1_1 -44 NaN
test.html:44 1_2 -44 NaN
test.html:42 1_1 -88 3001
test.html:44 1_2 -88 3003
test.html:42 1_1 -132 6003
test.html:44 1_2 -132 6004
test.html:42 1_1 -176 9004
test.html:44 1_2 -176 9005
上边的是一个不断循环重复的结果,只是以后的 -44后边的内容不再是NaN,而是具体数字了。
想不明白为什么Date.now()-old会得出NaN,如果是因为数太小的话,那么单独像下面一样
var old = Date.now();
console.log(Date.now() - old);
上述代码会输出 0 或者是 1,而非NaN
另外,在火狐上测试,结果和chrome一样,也是前两个 -44 后边为NaN,而以后的 -44后边就变为数字
上边的只是JS代码,下边是完整的代码,可以执行的
<!DOCTYPE html>

#yscroll_list{
height:16px;
overflow:hidden;
}
#yscroll_listin{
position:relative;
overflow:hidden;
}
#yscroll_listin ul {
position:relative;
margin-left:50px;
}

window.onload = function(){
setTimeout(function() {
var a = 0,wdw1;
$($(".yscroll_list_left li")[0]).clone(!0).insertAfter($($(".yscroll_list_left li")[$(".yscroll_list_left li").length - 1]));
var len = $(".yscroll_list_left li").length;
b();
var old = Date.now();
function b() {
a -= 44;
if(a >= 44 * -(len - 2) ){
console.log("1_1",a,Date.now()-old);
$(".yscroll_list_left").animate({marginTop: a}, 500);
console.log("1_2",a,Date.now()-old);
}
else{
$(".yscroll_list_left").animate({marginTop: a}, 500, function() {
a = 0;
$(".yscroll_list_left").css({
marginTop: 0
})
});
}
wdw1 = setTimeout(b,1000);
}
}, 0);
}

  • 111
  • 222
  • 333
  • 444
  • 555

解决方案

 <script language="javascript" type="text/javascript">
function DateDiff(sDate1,sDate2){
//sDate1和sDate2是年-月-日格式
var arrDate,objDate1,objDate2,intDays;
arrDate=sDate1.split("-");
objDate1=new Date(arrDate[1]+'-'+arrDate[2]+'-'+arrDate[0]);//转换为月-日-年格式
arrDate=sDate2.split("-");
objDate2=new Date(arrDate[1] + '-'+arrDate[2]+'-'+arrDate[0]);
intDays=parseInt(Math.abs(objDate1-objDate2)/1000/60/60/24); //把相差的毫秒数转换为天数
return intDays;
}
alert(DateDiff("2007-1-1","2008-1-1"));
</script>

相关文章


  • js 中 Date.now()相减会出现 NaN 的问题,求教

【云栖快讯】他,一路保送,但可能不是你想象中的学霸; 他,曾是微软最年轻的技术管理者,挑战带领跨国团队; 他,后来加入阿里,成为阿里西雅图分部的第22名员工; 他,就是阿里通用计算平台负责人关涛! 通过短视频,为你揭晓他的成长和开发计算平台的经历,以及他对未来的展望!  详情请点击

热门推荐


  • 高性能云服务器2折起
  • 云服务器配置
  • 技术资料
  • 云计算
  • 域名
  • shell
  • node.js
  • 问答
  • java
  • mysql
  • C++
  • python
  • jQuery
  • Android
  • asp
  • PHP技巧
  • jQuery教程
  • JavaScript技巧
  • JS
  • SEO
  • sql server
  • mysql教程
  • 前端
  • 技术文集
  • 技术
  • 主题地图
  • A
  • z
  • 云服务器哪家好
  • API
  • 大数据
  • 云安全
  • 云存储
  • 云计算
  • 获取公众号授权失败
  • 兼容性疑难解答
  • path
  • stm32
  • jsonobject
  • product

前三篇


  • android-关于共用studio和eclipse的问题
  • [JKDictionary text]未知方法
  • JAVA非法字符解决不了

后三篇


  • 【新人提问】如何将eclipse中的package导出为一个bundle
  • 数组对象使用构造函数初始化的问题
  • 文本框的内容怎么自动发送到手机上的微信软件中?

(yq.aliyun.com)为您免费提供js 中 Date.now()相减会出现 NaN 的问题,求教相关信息,包括
date相减,oracle date相减,java date相减,两个date相减,mysql date相减的信息
,所有js 中 Date.now()相减会出现 NaN 的问题,求教相关内容均不代表的意见!
该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_857,您可以点击js 中 Date.now()相减会出现 NaN 的问题,求教-手机站访问。

  • 推荐产品


云数据库RDS

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

立即查看



云服务器9.9元 限时抢购

6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验

9.9元 立即购买



云服务器ECS

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

立即查看



开发者软件

开发者常用软件,超百款实用软件一站式提供

立即查看

  • 社区推荐

更多>

  • 好东西来了!2017云栖大会400+份重磅资料下载
  • 叮咚!您有一份2017杭州云栖大会参会指南待签收【持续更...
  • 重磅发布背后:POLARDB的中国故事
  • 传统应用层逻辑分库DB迁移阿里云DRDS+RDS分布式数...
  • 海量用户实时定位和圈人 - 团圆社会公益系统(位置寻人\...
  • 京颐CTO宋建康:如何应对系统高度分化异构的挑战,打造不...
  • 经典网络迁移VPC最佳实践
  • 揭秘IPHONE X刷脸认证的技术奥秘
  • 5大场景护航企业成长,实例解析阿里云适应性网络架构
  • 专访阿里云异构计算负责人:异构计算,GPU、FPGA、A...
  • 看了此文的人还看了

  • EXTJS中,fieldset自带的checkbox如何...
  • 微信微商城 wemall
  • 现在有个intellij-idea的项目想移植到Myce...
  • 高手看看 急得很 水晶报表动态加载显示的问题
  • 生成可执行jar文件时运行时出现could not fi...
  • 寻找高手帮忙 MyEclipse无法启动
  • 急!!!!急!!!!!急!!!!!C#后台获取的json...
  • highcharts曲线图中间有个断点,如何连接上
  • usb语音盒的二次开发
  • 用LitJson怎么输出这样格式的Json字符串

热门活动更多>

  • 云服务器9.9元抢购

    6款产品 6个月免费体验

    查看详情>

  • 搭建网站/应用首选

    轻量应用服务器 45元/月

    查看详情>

  • 全新云服务器限时2折起

    I/O优化,独享IP,性能提升20%

    查看详情>

热点导航


  • 高性能云服务器2折起
  • 域名查询
  • 网站域名whois查询
  • 云计算
  • 网站服务器价格
  • 域名注册
  • bootstrap table
  • MySQL三节点
  • MySQL读写分离
  • 技术资料
  • 阿里云邀请码
  • product
  • cfbundleidentifier报错
  • echarts地图json数据
  • webstorm开发javaweb
  • 社区
  • 技术
  • 滚动条
  • mysql upgrade
  • ie浏览器不加载样式
  • c primer 第五版
  • java实现opc client
  • post请求
  • 支付宝同步和异步通知
  • product1
  • 三合一云商城建设
  • 软件安装环境配置
  • 技术
  • 钉钉收费
  • 问答
  • 数据算法竞赛
时间: 2024-09-16 16:40:20

js 中 Date.now()相减会出现 NaN 的问题,求教的相关文章

JS中Date日期函数中的参数使用介绍

本文为大家详细介绍下JS中Date日期函数中的参数在实际使用中的介绍,感兴趣的朋友不要错过 要创建一个一个日期对象,可以使用以下的方式:   代码如下: var now=new Date()    当然,函数中没有传递任何参数,表示此对象now自动获取了当前的时间.    如果想要创建一个自定义时间的对象,则要对Date()进行参数的传递.而这个参数,必须是毫秒数(UTC时间1970年1月1日午夜起至自定义时间为止的毫秒数).    我们可以使用Date.parse()和Date.UTC()来获

excel中日期时间相减的例子

年月日相减 1.datedif函数是excel的隐藏函数, DATEDIF(start_date,end_date,unit) Start_date 为一个日期,它代表时间段内的第一个日期或起始日期. End_date 为一个日期,它代表时间段内的最后一个日期或结束日期. Unit 为所需信息的返回类型. Unit 返回 "Y" 时间段中的整年数. "M" 时间段中的整月数. "D" 时间段中的天数. "MD" start_d

JS中Date日期函数中的参数使用介绍_基础知识

要创建一个一个日期对象,可以使用以下的方式: 复制代码 代码如下: var now=new Date() 当然,函数中没有传递任何参数,表示此对象now自动获取了当前的时间. 如果想要创建一个自定义时间的对象,则要对Date()进行参数的传递.而这个参数,必须是毫秒数(UTC时间1970年1月1日午夜起至自定义时间为止的毫秒数). 我们可以使用Date.parse()和Date.UTC()来获得自定义时间的毫秒数. Date.parse()接收一个表示日期的字符串参数,例如"May 25,201

java 字符串相减(很简单的一个方法)

本篇文章是对java中关于字符串相减的一个简单的方法进行了介绍,需要的朋友参考下   有个比较简单的方法: 复制代码 代码如下: str1="abcd"; str2="cd"; str3=str1.replaceAll(str2,""); //str3="ab"

jsp 时间相减-jsp中两个string类型的时间怎么相减,回答的好的提高悬赏

问题描述 jsp中两个string类型的时间怎么相减,回答的好的提高悬赏 java.util.Date endDate3 = new java.util.Date(iYear,iMonth,iDate-iDay+7+ (iNext*7));//根据系统时间获取的时间 java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd"); String sEndDate3 = formatt

jsp从sql server数据库中获得的dateTime类型的数据能否直接相减

问题描述 jsp从sql server数据库中获得的dateTime类型的数据能否直接相减 我想获得两个日期之间相差的天数,最好能精确到分,过路的大侠指点一下吧! 解决方案 java从数据库读到的是java.sql.Date,java.sql.Date继承于java.util.Date.java.util.Date有个方法getTime(),返回从格林威治时间1970年1月1日00:00:00到该Date对象的时间的毫秒数.你把两个Date对象的getTime()相减再除以(60×1000)就是

js时间相减的示例

例子1  代码如下 复制代码 /*  * 时间加减  * sta : 开始时间, end : 结束时间, isDay : 是否需要天数(true/false 默认为false)  * r.d : 天数, r.h : 时, r.m : 分, r.s : 秒, r.t : 总时间  * 注意在Javascript中月份是以0开始 24h = 86400s, 1h = 3600s, 1m = 60s  */ function subtracTime(sta, end, isDay) {     isD

JS 两日期相减,获得天数的小例子(兼容IE,FF)

这篇文章介绍了两日期相减,获得天数的小例子,有需要的朋友可以参考一下   复制代码 代码如下: function GetDay() { var arrDate, objDate1, objDate2, intDays; objDate1 = new Date(); objDate2 = new Date(); arrDate = $("#开始日期").val().split("-"); objDate1.setFullYear(arrDate[0], arrDate

javascrpit-php如何翻写js中的new Date().getTime();方法

问题描述 php如何翻写js中的new Date().getTime();方法 如题 如题,js好像是到毫秒级, 求解答 求解答啊!!!!!! 解决方案 round(microtime(1)*1000) 解决方案二: 使用microtime 解决方案三: 直接ctime(); 解决方案四: 写错了,直接是time();函数就可以了. 解决方案五: getTime得到就是时间戳,php有time方法. php获取当前时间戳方法 解决方案六: 使用microtime可以满足你的需求吗? 上面的答案有