我正在尝试做的是将"yyyy-mm-dd HH:mm:ss"字符串更改为日期值。
这是当前代码
var c = new Date('2019-01-19 23:59:59'.replace(/s+/g, 'T'))
它返回
- 铬 :
Sat Jan 19 2019 23:59:59 GMT+0900 (KST)
- 野生动物园 :
Sun Jan 20 2019 08:59:59 GMT+0900 (KST)
- IE11 :
Sat Jan 19 2019 23:59:59 GMT+0900 (KST)
我应该怎么做才能让它都返回相同的日期?
谢谢。
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))
将打开这篇文章直到明天等待更好的答案。谢谢。
Z
' 添加到GMT/UTC
时区的date
字符串中
var c = new Date('2019-01-19 23:59:59'.replace(/s+/g, 'T')+'Z');
ISO 日期可以加上小时、分钟和秒 (YYYY-MM-DDTHH:MM:SSZ):日期和时间用大写字母 T 分隔。
UTC 时间用大写字母 Z 定义。
如果要修改相对于 UTC 的时间,请删除 Z 并改为添加 +HH:MM 或 -HH:MM:
例如var d = 新日期("2019-01-19T23:59:59-09:00");