Mac上的Javascript(Safari)toLocaleTimeString()奇怪

Kee*_*eno 6 javascript safari macos

我们有一个简单的功能,可以在一个持续时间内工作,除了Mac上的Safari之外,它在每个浏览器中都能正常工作(在Mac上使用chrome工作,在PC上运行Safari)

例如,

new Date().toLocaleTimeString() 
Run Code Online (Sandbox Code Playgroud)

我们希望这样的时间格式如下:

十一时59分25秒

但是,在Mac Safari上我们得到了这个

格林尼治标准时间11:59:25 + 01:00

我们在这些时间进行的任何计算都是一小时的计算(它将计算中的小时数加入)

例如11:59:25 - 11:59:25 = 01:00:00(应该是00:00:00)

有任何想法吗?

为什么要在字符串中添加时区?这给我们的数据库带来了一点问题

为什么它会增加一小时的刺痛?

为什么只是在那个血腥的浏览器!

谢谢你的时间.

Dav*_*rin 4

toLocaleTimeString 方法依赖于底层操作系统来格式化日期。它使用运行脚本的操作系统的格式约定将日期转换为字符串。例如,在美国,月份出现在日期之前 (04/15/98),而在德国,日期出现在月份之前 (15.04.98)。

getHours、getMinutes 和 getSeconds 等方法比 toLocaleTimeString 提供更一致的结果。当目的是向用户显示使用用户选择的区域格式格式化的字符串时,请使用 toLocaleTimeString。请注意,由于其性质,此方法的行为会根据操作系统和用户的设置而有所不同。

来源:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString