我需要计算两个日期对象之间的经过时间
I need to calculate an elapsed time between two date objects
我有一个从保存在数据库中的变量创建的日期对象。
var prevTime = Date(year,month,day,hour,minute);
我想计算当前时间和当前时间的差值。
var thisTime = Date();
我正在做这个:
prevTime.getTime() - thisTime.getTime();
得到一个非常大的负数。除以1000得到秒,然后除以3600得到小时。我需要以小时为单位的时间。最后得到的是-756.00。如果当前时间比之前的时间大,为什么数字是负的?我做错了什么?
谢谢,斯科特
当前时间比以前的时间大,所以用较小的数减去较大的数得到负数。如果你想要得到正的时间差,就把顺序倒过来。还有别的问题吗?
这里的演示:http://jsfiddle.net/jfriend00/NYSsp/
var prevTime = new Date(2011,1,1,0,0); // Feb 1, 2011
var thisTime = new Date(); // now
var diff = thisTime.getTime() - prevTime.getTime(); // now - Feb 1
alert(diff / (1000*60*60*24)); // positive number of days
第一个必须小于负数。你的第一次约会已经过去了
下面是一个例子:
var a = new Date(2011,7,5,2,1,1) - new Date(2011,7,5,1,1,1);
alert(a); // 3600000 which is millisecond for 1 hour. Divide by this to get hours.
如果你想在网页上动态运行的日期和时间,也登录时间,即时钟开始从java函数脚本的开始,也给出了多少小时,分钟和秒,你在应用程序或特定的网页在线。
<script type="text/javascript">
var second;
var first = new Date;
function date_time() {
var id = 'Label1'
date = new Date;
second = date.getTime();
year = date.getFullYear();
month = date.getMonth();
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
d = date.getDate();
day = date.getDay();
days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
h = date.getHours();
if (h < 10) {
h = "0" + h;
}
m = date.getMinutes();
if (m < 10) {
m = "0" + m;
//min = min+1;
}
s = date.getSeconds();
if (s < 10) {
s = "0" + s;
//sec = sec+1;
}
var timeDiff = second - first.getTime();
var hours = Math.floor(timeDiff / (1000 * 60 * 60));
timeDiff -= hours * (1000 * 60 * 60);
var mins = Math.floor(timeDiff / (1000 * 60));
timeDiff -= mins * (1000 * 60);
var secs = Math.floor(timeDiff / 1000)
timeDiff -= secs * 1000;
result = 'LoginTime(HH:MM:SS) ' + hours + ':' + mins + ':' + secs + ' ' + days[day] + ' ' + months[month] + ' ' + d + ' ' + year + ' Clock(24hr): ' + h + ':' + m + ':' + s;
document.getElementById(id).innerHTML = result;
setTimeout('date_time("' + id + '");', '1000');
return true;
}
检查这个:
var first = new Date();
for(i = 0; i<10000; i++) // Some loop to make a little time pass
{
i = i;
}
var second = new Date();
second.getTime() - first.getTime();
相关文章:
- 比较从函数和生成的日期对象
- 如何获得一个只有时间的moment.js日期对象
- 使用moment.js获取时间分区的偏移日期对象
- 对象数组返回自最近日期以来的最高总体值
- JavaScript JSON关联对象键和值都作为日期时间戳
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 将某个时间格式转换为日期对象
- date对象未在javascript中返回正确的日期值
- 正在使用日期字符串初始化javascript日期对象
- 在CouchDB Map函数中发出日期时-对日期对象调用的内容
- 如何将事件的日期放入fullcalendar中的日期对象中
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 理解日期对象接收参数时的getDay()方法
- JS日期对象setUTCMonth()将月份增加2
- 时间-日期对象JavaScript getUTCMilliseconds
- 如何根据创建日期对对象进行排序,以插入Meteor的高图表
- JavaScript日期接收为像这次旅行一样的对象.日期:“/日期(1426530600000)/”;
- 将带有 AM/PM 的日期字符串转换为 javascript 日期对象
- Javascript排序对象日期
- MVC控制器返回JSON对象日期属性"Now"“帮助”