如何将字符串转换为角度4的Date类型

时间:2018-04-03 15:03:38

标签: angular typescript

我的.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

3 个答案:

答案 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.