JSON.stringify() 后日期少一天的原因即处理方式
JSON.stringify 转换 Date 不正确的原因:Date.toJSON() 返回的是 ISO-8601 标准: YYYY-MM-DDTHH:mm:ss.sssZ 和北京时间差 8 个时区
解决方案
重写 Date.toJSON()方法
Date.prototype.toJSON = function () {
return format(this)
}
function format(d) {
var y = d.getFullYear()
var m = d.getMonth() + 1
if (m < 10) {
m = '0' + m
}
var day = d.getDate()
if (day < 10) {
day = '0' + day
}
var h = d.getHours()
if (h < 10) {
h = '0' + h
}
var M = d.getMinutes()
if (M < 10) {
M = '0' + M
}
var s = d.getSeconds()
if (s < 10) {
s = '0' + s
}
// ? 注意不要使用'-'会有ios new Date(d)问题
return y + '/' + m + '/' + day + ' ' + h + ':' + M + ':' + s
}