我想做的是将“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))
这个帖子会开到明天,等待更好的答案。
谢谢。