new Date时区相差八个小时处理方案

根据 ECMA-262 ed 3,对时间的解析可能有不同处理方式。

在 ES5 中,对 ISO 8601 格式的字符串,如果没有指定时区,则解析为 UTC,对非 ISO 8601 的处理没有统一行为。

在 ES2015 中,对没有指定时区的字符串解析为当地时间(根据系统时间)。

如果你希望把所有这种形式的字符串都处理为当地时间,可以自己写个函数:

function parseISOLocal (s) {

var b = s.split(/\D/);

return new Date(b[0], b[1]-1, b[2]);

}

你可能感兴趣的:(前端探讨)