传值时显示正常(后台要求的中国标准时间格式)
但是请求体中变成了toJson后的格式导致后台无法解析
有什么办法可以解决?
使用new Date()传时间戳默认会转成标准格式
写个函数转一下吧,原生js如下:
function formatDate(date) {
const year = date.getFullYear();
const month = ('0' + (date.getMonth() + 1)).slice(-2);
const day = ('0' + date.getDate()).slice(-2);
const hour = ('0' + date.getHours()).slice(-2);
const minute = ('0' + date.getMinutes()).slice(-2);
const second = ('0' + date.getSeconds()).slice(-2);
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}
// 测试
const date = new Date();
console.log(formatDate(date)); // 示例输出: "2022-02-22 22:22:22"
使用 Date.prototype.toISOString()
方法将日期对象格式化为标准的 ISO 8601 日期字符串,然后通过字符串的操作,提取所需要的部分,组成指定格式的日期字符串:
该函数会返回一个格式化后的字符串,格式为 YYYY-MM-DD HH:mm:ss
。其中,slice()
方法用来保证数字位数不足两位时,前面填充一个 '0'
,以满足格式要求。
function formatChinaStandardDate(date) {
var year = date.getFullYear();
var month = ("0" + (date.getMonth() + 1)).slice(-2);
var day = ("0" + date.getDate()).slice(-2);
var hours = ("0" + date.getHours()).slice(-2);
var minutes = ("0" + date.getMinutes()).slice(-2);
var seconds = ("0" + date.getSeconds()).slice(-2);
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
}
var data = {
startLastModified: formatChinaStandardDate(startLastModified),
endLastModified: formatChinaStandardDate(endLastModified),
};
var jsonData = JSON.stringify(data);
前端可以格式化时间,格式为 YYYY-MM-DD HH:mm:ss的字符串进行传值
后端toJson时,可以重写方法,加上时区进行转换。