假设我们有这个日期时间:
var d = new Date("Sat Jul 21 2018 14:00:00 GMT+0200");
将其导出为字符串(
console.log(d)
)在不同的浏览器中结果不一致:
Chrome:
Sat Jul 21 2018 14:00:00 GMT+0200 (Paris, Madrid (heure d’été))
Internet Explorer等:
Sat Jul 21 14:00:00 UTC+0200 2018
然后自然的想法是要求一个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);