无效日期 - “MM / YYYY”字符串到日期转换时出错

时间:2018-05-03 19:55:59

标签: angular typescript date

我正在尝试将字符串转换为Date,但我收到Invalid Date错误。

输入将是包含以下数据格式之一的字符串:

  • YYYY 仅限年份
  • MM/YYYY month&年
  • DD/MM/YYYY 完整日期

预期输出为Date类型,但我唯一无法转换的格式是 MM/YYYY 一种。

我该如何解决这个具体案例?感谢。

1 个答案:

答案 0 :(得分:0)

我使用以下代码解决了它:

@Input() initialDate: any; //Either "YYYY", "MM/YYYY" or "DD/MM/YYYY"
@Input() mask: string = 'text' //Either "full", "month" or "year";

ngOnInit() {
  // Handle initialDate value
  this.setInitialDate();
}

private setInitialDate() {
  if (this.initialDate) {
    switch (this.mask) {
      case 'full':
        this.day = this.initialDate.getDate().toString();
        this.month = this.months[this.initialDate.getMonth()];
       this.year = this.initialDate.getFullYear().toString();  

      break;
    case 'month': 
      let monthYear = this.initialDate.split('/');
      if (monthYear.length == 2) {
        this.month = this.months[monthYear[0] - 1];
        this.year = monthYear[1];
      }

      break;
    case 'year': 
      this.year = this.initialDate;

      break;
    default:
      break;
    }
  }
}