const data= JSON.stringify(orderForm.informationDate));
目前,我从 JSON 获取数据以任何方式打印 PDF:
{"year":2023,"month":12,"day":22}
如何将数据更改为DD.MM.YYYY格式?
您可以获取该对象的属性(data.year、data.month、data.day)并连接成字符串
${data.day}.${data.month}.${data.year}
您的问题是基于一些误解:
日期无法与 json 序列化 - 没有日期/时间数据类型。
当您向 json 序列化器提供日期时,您正在提供一个对象,因此序列化器会生成一个对象表示,就像您所看到的:
const myFakeDate = { year: 2023, month: 12, day: 22 };
console.log(JSON.stringify(myFakeDate)); // => {"year":2023,"month":12,"day":22}
您在问题中提到的格式显然是一个字符串,因为日期通常在内部存储为数字,而不是字符串
就您而言,您有两种选择:
JSON.stringify
之前将日期/时间对象转换为字符串:
const data= {
name: "John Doe",
birthDate: {year: 1982, month: 3, day: 4}
};
data.birthDate = data.birthDate.day + '.' + data.birthDate.month + '.' + data.birthDate.year;
console.log(JSON.stringify(data));
const data= {
name: "John Doe",
birthDate: {year: 1982, month: 3, day: 4}
};
const replacer = function(item) {
if (item.year && item.month && item.day) {
return item.day + '.' + item.month + '.' + item.year;
}
return item;
};
console.log(JSON.stringify(data, replacer));
请记住,您可能/可能需要在另一侧反转该过程(例如,将字符串转换回日期)
如果您使用的是日期时间对象(而不是普通对象),您可以检查对象类而不是日/月/年属性是否存在。这取决于您的确切代码。