【问题标题】:compare two dates in Angular 6比较Angular 6中的两个日期
【发布时间】:2019-05-28 12:21:39
【问题描述】:

我是 angular 6 的新手,在这里我需要比较日期输入并找到最大的输入。

input 1 : 2018-12-29T00:00:00
input 2 : Mon Dec 31 2018 00:00:00 GMT+0530 (India Standard Time)

这里我收到了来自 mssql 数据库的 input 1 和来自材料 datepicker 的 input 2

在比较这两个日期时,我得到了错误。

console.log(mMagazineObject.From < mMagazineObject.To ? true : false);

有没有可能比较这两种日期格式。如果是,请帮我解决这个问题。

【问题讨论】:

  • 这不是关于 Angular 而是关于 JavaScript。您可以考虑将 MomentJS 用于处理日期
  • 您应该将两者都转换为日期对象,然后您可以使用 .valueOf() 获取自 unix 纪元以来的毫秒数。这足以进行适当的比较。

标签: angular typescript angular6


【解决方案1】:

你可以使用getTime

if (input1Date.getTime() < input2Date.getTime()) 

请注意,如果您的日期是字符串格式,您首先需要将它们解析为日期

【讨论】:

    【解决方案2】:

    Angular 有内置的 formatDate 方法,所以你可以用它来格式化你的日期,也可以像下面的代码一样简单地比较它:

    在您的 component.ts 文件中:

       date1 = formatDate(new Date(),'yyyy-MM-dd','en_US');
       date2 = let FToday = formatDate(datecomingfromdb,'yyyy-MM-dd','en_US');
    
       if(date1>date2){
         console.log('---date1 is greater----');
        }else{
         console.log('---date2 is greater-----');
        }
    

    希望这会有所帮助,您可以在 Angular 文档here 中阅读更多内容

    【讨论】:

      【解决方案3】:

      我终于找到了解决办法。

      console.log(mMagazineObject.From < this.datePipe.transform(mMagazineObject.To, 'yyyy-MM-dd') ? true : false);
      

      【讨论】:

        【解决方案4】:

        如果 API 发生变化,最好使用 Date.parse(input)。这提供了时间戳和数字,您可以轻松地将其与数学比较进行比较。

        【讨论】:

          【解决方案5】:

          我已经尝试了所有方法来比较 2 个日期,但下面是比较 2 个日期的最佳内置角度方法。

          if (formatDate(FromDate,'yyyy-MM-dd','en_US') > formatDate(ToDate,'yyyy-MM-dd','en_US')) 
          {
          console.log('---Fromdate is greater----');
          }
          else
          {
          console.log('---Todate is greater----');
          }
          

          这里,formatDate的第一个参数是日期输入,第二个参数是日期格式,第三个参数是语言环境。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-12-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-01
            相关资源
            最近更新 更多