javascript - getHours() 返回不正确的值

我正在使用 JavaScript Date 对象将毫秒转换为可读的 minutes:seconds 格式字符串。我需要它来为自定义视频播放器创建一个计时器,其中我的 JS 接口(interface)接收视频持续时间信息作为毫秒值。

在我决定支持制作超过 59 分钟的视频之前,这是一项相当微不足道的任务。然后我遇到了这个问题:当我向新的Date对象的构造函数提交一个毫秒值,然后调用getHours(),即使毫秒数代表一段时间,它也会返回一些东西不到一个小时。看到这一点的最简单方法是喂它,比如 0。

我希望它返回 0,但它总是返回 12(在 Opera 中是 13,这使它更加奇怪)。这是正常行为还是错误?无论哪种方式,我如何可靠地检测我的毫秒值是仅限于分钟和秒还是还包括小时?

谢谢。

更新:

我已经在 OSX 上的 Chrome 15 和 Firefox 7 中对其进行了测试:结果与上面的屏幕截图相同。我不知道如何使用 Opera Dragonfly 控制台,但是从我看到的 Opera 中也发生了同样的事情,只是 getHours() 的值为 13。

最佳答案

我注意到,虽然人们告知用户如何修复他的代码,但他们并没有告知他如何按照他的要求去做。答案很简单。不要使用函数 getHours()。使用 getUTCHours()。这将绕过任何时区偏移。

如果您需要长达数天,您仍然会遇到问题,但在此之前,Date 原语可以很好地满足您的用途。

https://stackoverflow.com/questions/8129910/

相关文章:

swift - 在 Swift 中使用 %@ 格式化字符串

haskell - 如何将 Rational 转换为 "pretty"字符串?

reporting-services - SSRS 格式显示为百分比

c# - 从时间中删除前导零以显示耗时

php - 如何使用 PHP 发送 HTML 格式的邮件?

sql-server - SQL 2008 使用 LTrim(RTrim 并且数据中仍有空格

html - 在电子邮件正文中应用 HTML 格式

c# - 在 DataGridView 列中格式化 TimeSpan

c++ - 格式化 C++ 控制台输出

c++ - Qt - QPushButton 文本格式