带有字符串值的Safari新日期超出了其他时间

时间:2019-01-16 05:07:10

标签: 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: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)

我应该怎么做才能使它返回所有相同的日期?

谢谢。

2 个答案:

答案 0 :(得分:0)

Z时区的date字符串中添加'GMT/UTC'

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 = new Date(“ 2019-01-19T23:59:59-09:00”);

答案 1 :(得分:-1)

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

在末尾添加kind: ConfigMap spec: import_csv.sql: | COPY my_table FROM '/whatever/path/you/want.csv' FORMAT csv /* etc */ --- kind: Pod spec: containers: - volumeMounts: - name: my-initdb-configmap mountPath: /docker-entrypoint-initdb.d readOnly: true # ... 也是不错的选择,但是如果您希望与其他浏览器获得相同的结果,则应计算时区偏移量。

这就是我所做的...

Z

此职位将开放到明天,以等待更好的答案。 谢谢。