我试图创建一个非常简单的时差计算.只是"结束时间 - 开始时间".我虽然得到+1小时.我怀疑它与我的时区有关,因为我是GMT + 1.
无论如何,这不应该影响差异,因为开始和结束时间都在同一时区.
在这里查看我正在运行的示例代码:
http://jsfiddle.net/kaze72/Rm3f3/
$(document).ready(function() {
var tid1 = (new Date).getTime();
$("#tid").click(function() {
var nu = (new Date).getTime();
var diff = new Date(nu - tid1);
console.log(diff.getUTCHours() + ":" +
diff.getUTCMinutes() + ":" +
diff.getUTCSeconds());
console.log(diff.toLocaleTimeString());
});
})
Run Code Online (Sandbox Code Playgroud)
您必须了解Date对象代表什么以及如何存储日期.基本上每个Date都是一个薄的包装器,自1970年以来的毫秒数(所谓的纪元时间).通过从另一个日期中减去一个日期,您无法获得日期:您只需获得两者之间的毫秒数.
据说这条线没有多大意义:
var diff = new Date(nu - tid1);
Run Code Online (Sandbox Code Playgroud)
你真正需要的是:
var diffMillis = nu - tid1;
Run Code Online (Sandbox Code Playgroud)
......然后简单地提取秒,分钟等:
var seconds = Math.floor(diffMillis / 1000);
var secondsPart = seconds % 60;
var minutes = Math.floor(seconds / 60);
var minutesPart = minutes % 60;
var hoursPart = Math.floor(minutes / 60);
//...
console.log(hoursPart + ":" + minutesPart + ":" + secondsPart);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
792 次 |
| 最近记录: |