JavaScript在不同的浏览器中返回不同的时间结果
JavaScript returning different time results with different browsers
我有这个函数,它以秒为参数,并返回一个时间格式字符串。
var secondstotime = function(secs) {
var t = new Date(1970, 0, 1);
t.setSeconds(secs);
var s = t.toTimeString().substr(0, 8);
if (secs > 86399) {
s = Math.floor((t - Date.parse("1/1/70")) / 3600000) + s.substr(2);
}
return s;
}
Chrome和Mozilla给我两个不同的结果,我知道Chrome是对的,但我不知道为什么Mozilla总是在时间字符串上加一个小时。
例如:console.log(secondstotime(20000));
Chrome显示05:33:20
, Mozilla显示06:33:20
我似乎看不出问题是什么,如果代码不兼容?
首先,我会尝试使用Moment.js,他们会处理浏览器实现之间的差异:
const secToTime = s => moment("2015-01-01").startOf('day')
.seconds(s)
.format('H:mm:ss');
然后运行:
secToTime(20000)
否则你应该检查你的实现在使用日期函数,parse vs toTimeString vs constructuor
相关文章:
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- 检查JavaScript中的日期时间是否相等时出现错误结果
- 在PHP结果中添加复选框,并在一段时间后使用java逐个打开它们
- Javascript 添加了缺失天数的时间序列结果
- 获取给定日期与今天日期的时间戳结果不同
- Phantom JS:第一个孩子返回正确结果的时间有一半
- 如何将 2 小时添加到当前日期时间并将结果显示回日期时间
- 在chrome和Firefox中获取时间不同的结果
- 在机器时间更改后立即更新Date()函数结果
- 将时间戳转换为日期会在结果中显示不同的时区
- 在momentjs中创建UTC时间会返回奇怪的结果
- 如何用javascript比较多个数组,在每个数组中只得到相同时间的结果
- 在多个表中获得相同时间的结果
- 在用户提交结果时,将日期和时间保存到访问文件中
- CouchDB在时间戳内获取结果
- Javascript时间跨度没有返回预期的结果
- 从毫秒到不同时间的Unix时间戳的转换会给出相同的结果
- 如果无法在指定时间内从服务器检索结果,则弹出警告消息
- JavaScript在不同的浏览器中返回不同的时间结果
- 写控制台.时间结果变量