我有一个对象,该对象的日期类型为'birthDate'。 在屏幕上,我应该以DD / MM / YYYY格式显示生日。现在,我使用引导程序bsDatePicker。 但是在数据库中,它以YYYY-MM-DD(类型字符串)的格式存储。因此,要提交修改,我应该将生日转换为这种格式。
您能告诉我如何在JSON请求中将Date(DD / MM / YYYY)序列化为YYYY-MM-DD格式吗?
您有什么好主意来优化转换而无需对数据库进行任何更改?
谢谢
答案 0 :(得分:2)
首先,您将创建一个接受包含日期的字符串的函数。然后将其转换。在该函数的结尾,我有一些三进制代码,因为如果您不添加该部分,则日期可能是 2018-4-2 ,并且您希望它 > 2018-04-02
dateFormater(date:string):string{
const today = new Date(date);
const day = today.getDate()+1;
const month = today.getMonth()+1;
const year = today.getFullYear();
return year + "-" + (month<10 ? ("0" + month) : month)+ "-" + (day<10 ? ("0" + day) : day);
}
答案 1 :(得分:0)
如果它是字符串,则可以提取相关数据并返回正确的格式,这需要在json中提交。可能的辅助功能:
formatDate():string{
const today = new Date();
const day = today.getDate();
const month = today.getMonth()+1; // this will return 0-11 so you will need to add 1 to make it, 1-12
const year = today.getFullYear();
return year+"-"+month+"-"+day;
}
这将返回"2018-10-19"
。
答案 2 :(得分:0)
谢谢你的回答,这就是我所做的:
我将原始对象映射到带有日期的请求类型:
if(item[key] instanceof Date) {
value = this.dataPipe.transform(item[key], 'yyyy-MM-dd').toString();
}else {
value = item[key].toString();
}