日期时间之间的差异
Difference Between Datetimes
这里有一段代码,用于计算两个日期时间之间的小时差。在这里有点不知所措。代码是命中还是未命中,我不知道为什么。
var date = tr.find('td:eq(10) input').val();
var time = tr.find('td:eq(10) option:selected').val();
var d1 = parseDate(date,time);
date = tr.find('td:eq(11) input').val();
time = tr.find('td:eq(11) option:selected').val();
var d2 = parseDate(date,time);
var diff = d2.getTime() - d1.getTime();
var hoursTd = tr.find('td:eq(12)');
hoursTd.html((diff/3600000).toFixed(2));
date
和time
填充正确,从jQuery UI日期选择器和一个简单的下拉列表中提取,下拉列表的值为下午2:30、下午2:45、下午3:00等。当日期相同时,它可以正常工作,但有时当日期不相同时,会增加10的幅度。例如:
2011年1月11日上午10:30-2011年11月1日上午11:00=0.50(正确)
2011年1月10日上午10:30-2011年11月1日上午11:00=24.50(正确)
2011年9月1日上午10:30-2011年11月1日11:00=264.50(不正确)
2011年8月1日上午10:30-2011年11月1日11:00=264.50(不正确)
2011年7月1日上午10:30-2011年11月1日中午11:00=96.50(正确)
编辑,天哪,对不起。不包括parseDate函数。
// Date m/d/Y Time h:m a
function parseDate(date,time) {
date = date.split("/");
time = time.split(" ");
hm = time[0].split(':');
if (parseInt(hm[0]) == 12) {
hm[0] = 0;
}
if (time[1] == 'pm') {
hm[0] = parseInt(hm[0]) + 12;
} else {
hm[0] = parseInt(hm[0]);
}
return new Date(
parseInt(date[2]), parseInt(date[0])-1, parseInt(date[1]),
hm[0], parseInt(hm[1])
);
}
编辑,好吧,所以parseInt
是罪魁祸首。parseInt("09")
返回0。"08"
也是如此。奇怪的是,parseInt("07")
返回7。1-6也正确返回。有人告诉Javascript。
问题是您在date[1]上的parseInt()使用了前导零。
return new Date(
parseInt(date[2]), parseInt(date[0])-1, parseInt(date[1]),
hm[0], parseInt(hm[1])
);
当您传递像2011年9月1日这样的日期时,09将被解析为0,而不是9。
date.js解决了您的问题:
var first = Date.parse(01/09/2011 10:30 am);
var second = Date.parse(01/11/2011 11:00 am);
var diffMs = Math.abs(first - second) // difference in milliseconds
相关文章:
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 用时间戳获取两个不同日期之间的时间差
- Mongoose查询在两个日期时间之间提取数据
- angularjs计算开始时间和当前时间之间的时间差
- 在Chrome开发工具中测量步骤之间的时间
- 获取用户和服务器时间之间的时间差
- 如何在javascript中计算两个日期时间之间的差异
- JavaScript:获取MySQL时间戳和当前日期之间的天数差
- 如何在数组中循环,等待每个项目之间的时间
- 用户如何获取两个时间戳之间的对象
- 如何调试$ionicView.beforeEnter和$ionicView.enter之间的时间
- 为什么chromecast在动画帧之间需要这么长时间
- 传递日期和日期时间之间的Javascript Date()差异
- 返回两个日期时间单元格之间的差值
- 如何使用Moment.JS检查当前时间是否在2次之间
- 日期和unix时间之间的时间,以及计时器倒计时
- 如何处理php(Laravel-api)和javascript(AngularJS)之间的日期时间
- 在 PhantomJS 中在页面上下文中的控制台日志之间等待一段时间
- 如何在 24 小时制下计算两个时间之间的时差
- 处理javascript和Rails之间时间的正确方法