我的.ts文件中有一个字符串如下。
const date = "5/03/2018";
我想转换为日期类型,它是由角度Date类返回的默认日期类型。
Tue Apr 03 2018 20:20:12 GMT+0530 (India Standard Time)
现在我必须将此字符串类型日期转换为默认的角度日期类型。任何帮助? 我尝试了以下内容。
const date1 = new Date("5/03/2018");
但它不起作用我没有得到所需的格式。 这是stackblitz链接任何建议都会有所帮助。 https://stackblitz.com/edit/angular-gdwku3
答案 0 :(得分:3)
查看this function(stackblitz),它会格式化以不同格式提交的日期,您可以按照自己的意愿玩年,月,日地点:
parse(value: any): Date | null {
if ((typeof value === 'string') && (value.indexOf('/') > -1)) {
const str = value.split('/');
const year = Number(str[2]);
const month = Number(str[1]) - 1;
const date = Number(str[0]);
return new Date(year, month, date);
} else if((typeof value === 'string') && value === '') {
return new Date();
}
const timestamp = typeof value === 'number' ? value : Date.parse(value);
return isNaN(timestamp) ? null : new Date(timestamp);
}
答案 1 :(得分:2)
将日期格式更改为YYYY-MM-DD
创建日期对象。
var date = new Date ("2014-10-10");
consol.log(date.toDateString());
请记得调用toDateString
方法。
答案 2 :(得分:0)
“如何在打字稿中将字符串/ any转换为Date类型”? 每当您使用关键字“ new”时,它将以默认格式“ Tue Apr 03 2018 20:20:12 GMT + 0530(印度标准时间)”设置日期。 因此,请避免使用new来初始化日期。相反,您可以先使用任意类型,然后将其存储在日期类型中。 但是,使用任何方法通常被认为是不好的做法,但出于这个原因,它可以完美地工作。当您要在打字稿文件上使用日期类型为“ yyyy / MM / dd”的日期时,此方法很有用。
initialDate: any;
formattedDate: Date;
// value is the date which you want to transform
this.initialDate = this.datePipe.transform(value, 'yyyy-MM-dd');
console.log(this.initialDate);
this.formattedDate = this.initialDate;
console.log('Formatted Date = ' + this.formattedDate);
// Therefore, I will get my output in 'yyyy/MM/dd' of type Date.