function show_elapsed_time(from)
{
var time_elapsed = new Date().getTime()-from;
var date = new Date(time_elapsed);
var date_elements = (pad(date.getHours()) + ':' + pad(date.getMinutes()) + ':' + pad(date.getSeconds())).split('');
var date_string = '';
for(i = 0; i < date_elements.length; i++)
{
date_string += '<div class="frame">' + date_elements[i] + '</div>';
}
$('#digital_clock').html(date_string);
}
show_elapsed_time(1308446047*1000)
预期结果(在此帖子时)是0小时,2分钟,......秒。这也是Opera,Chrome和IE给出的结果。但是,Firefox返回1小时2分钟等。如何解决?
基本上:
var date = new Date(1453288); console.log(date.getHours()); // FF: 1, IE: 0, Opera 0
我正在做的是:new Date().getTime() - [some timestamp] == time passed
所以我需要知道从[some timestamp]
开始的时间,以小时,分钟和秒为单位。
答案 0 :(得分:1)
嗯,问题在于不同的区域设置浏览器设置。解决该问题的一种方法是使用UTC
特定方法,例如getUTCTime()
。相反,我写了这个小脚本来做数学运算:
var time_elapsed = new Date().getTime()-from;
var hours = Math.floor(time_elapsed/(3600*1000));
time_elapsed -= hours*(3600*1000);
var minutes = Math.floor(time_elapsed/(60*1000));
time_elapsed -= minutes*(60*1000);
var seconds = Math.floor(time_elapsed/1000);