javascript - 具有字符串值的 Safari 新日期超出不同的时间

标签 javascript date cross-browser

<分区>

我想做的是将“yyyy-mm-dd HH:mm:ss”字符串更改为日期值。

这是当前代码

var c = new Date('2019-01-19 23:59:59'.replace(/\s+/g, 'T'))

返回

  • chrome:2019 年 1 月 19 日星期六 23:59:59 GMT+0900(韩国标准时间)
  • Safari :2019 年 1 月 20 日星期日 08:59:59 GMT+0900(韩国标准时间)
  • ie11:2019 年 1 月 19 日星期六 23:59:59 GMT+0900(韩国标准时间)

我应该怎么做才能让它在同一日期返回?

谢谢。

最佳答案

Safari... 在创建带有日期字符串的实例时不考虑时区偏移。

在末尾添加Z也是不错的点,但是如果你想得到与其他浏览器相同的结果,应该计算时区偏移。

这是我所做的...

// Before do this, check navigator.userAgent 
// and execute below logic if it is desktop Safari.

// Add Z is the convention, but you won't get any error even if do not add.
var c = new Date('2019-01-19 23:59:59Z'.replace(/\s+/g, 'T')) 

// It will returns in minute
var timeOffset = new Date().getTimezoneOffset();

// Do not forget getTime, if not, you will get Invalid date         
var d = new Date(c.getTime() + (timeOffset*60*1000))    

这个帖子会开到明天,等待更好的答案。 谢谢。

关于javascript - 具有字符串值的 Safari 新日期超出不同的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54210749/

相关文章:

javascript - input type=image - onclick(), 将触发其事件,但在 jquery 中的功能上效果不佳

javascript - 如何在nodejs和ES6导入中使用jquery插件?

javascript - 如何在 Angular js中的输入类型日期中显示日期?

保证在现代浏览器中被解释为本地时间的 JavaScript 纯日期格式

JavaScript 在粘贴事件上获取剪贴板数据(跨浏览器)

javascript - 我想隐藏 asp :PlaceHolder in javascript

javascript - 使用 WordPress 实现巨型菜单

mysql - 如何在MYSQL中选择日期为2001和2002的代码?

ios - 从 NSDate() 保存日期,最后在 CoreData 中不带 +0000

testing - 您如何跨浏览器和设备测试功能?