【发布时间】:2018-08-26 01:48:37
【问题描述】:
假设我们有这个日期时间:
var d = new Date("Sat Jul 21 2018 14:00:00 GMT+0200");
将其导出为字符串 (console.log(d)) 会导致浏览器之间的结果不一致:
Sat Jul 21 2018 14:00:00 GMT+0200 (Paris, Madrid (heure d’été))使用 ChromeSat Jul 21 14:00:00 UTC+0200 2018使用 Internet Explorer 等
因此我们无法将日期时间发送到具有格式不一致的服务器。
然后自然的想法是要求 ISO8601 日期时间,并使用 d.toISOString(); 但它给出 UTC 日期时间:2018-07-21T12:00:00.000Z 而我想要本地时区时间:
2018-07-21T14:00:00+0200
or
2018-07-21T14:00:00
如何获得这个(不依赖像momentjs这样的第三方依赖)?
我试过这个,似乎可行,但是没有更自然的方法吗?
var pad = function(i) { return (i < 10) ? '0' + i : i; };
var d = new Date("Sat Jul 21 2018 14:00:00 GMT+0200");
Y = d.getFullYear();
m = d.getMonth() + 1;
D = d.getDate();
H = d.getHours();
M = d.getMinutes();
S = d.getSeconds();
s = Y + '-' + pad(m) + '-' + pad(D) + 'T' + pad(H) + ':' + pad(M) + ':' + pad(S);
console.log(s);
【问题讨论】:
标签: javascript date datetime timezone