【问题标题】:How to convert string to Date class type in angular 4如何在角度 4 中将字符串转换为 Date 类类型
【发布时间】:2018-04-03 15:03:38
【问题描述】:

我的 .ts 文件中有如下字符串。

const date = "5/03/2018";

我想转换为日期类型,这是角度日期类返回的默认日期类型。

 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

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    将日期格式更改为YYYY-MM-DDformat 创建日期对象。

    var date = new Date ("2014-10-10"); console.log(date.toDateString());

    记得调用toDateString方法。

    【讨论】:

    • Miachel 我们可以做这样的事情吗 var date = new Date("06/06/2018","yyyy/mm/dd");将字符串日期转换为所需的格式。因为日期字符串来自后端。
    • 您可以拆分当前日期格式并更改为我告诉您的格式。
    • 我最后的评论有帮助吗? @roopteja
    • 如果有效,尝试仍然会更新。你知道有什么直接通过像.Format()这样的函数或属性来转换格式的吗
    • 你可以使用 moment.js。我用过它,它很棒。
    【解决方案2】:

    查看this function(stackblitz),它将以不同的格式格式化日期,您可以随意使用年月日:

      parse(value: any): Date | null {
        if ((typeof value === 'string') && (value.includes('/'))) {
          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);
      }
    

    【讨论】:

    • 我们可以添加一个关于实际格式和预期格式的参数,并据此决定年份是在开始还是结束。现在它在函数内部进行了硬编码
    • 对,PO 应该使用年、日、月值来根据需要格式化日期,这非常简单,如果他从服务器获取日期,他甚至可能不需要额外的参数,只需重新排列value.split 中的值
    【解决方案3】:

    “如何在打字稿中将字符串/任何转换为​​日期类型”?? 每当您使用关键字“new”时,它都会将日期设置为默认格式,即“Tue Apr 03 2018 20:20:12 GMT+0530(印度标准时间)”。 所以避免使用 new 来初始化日期。相反,您可以先使用任何类型,然后将其存储在日期类型中。 但是,使用 any 通常被认为是一种不好的做法,但为此,它可以完美运行。当您希望 typescript 文件上的日期类型为“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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2012-09-19
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      相关资源
      最近更新 更多