【问题标题】:Angular 5 Compare date in componentAngular 5比较组件中的日期
【发布时间】:2019-02-21 21:46:18
【问题描述】:

我需要帮助来比较日期。 例如

today:Date=new Date();
endDate='9/17/18, 9:00 PM';
if(this.today>this.endDate){
....
}

我需要设置日期并进行比较。 任何帮助表示赞赏。 先感谢您。 XXX

【问题讨论】:

    标签: angular date components angular5


    【解决方案1】:

    你要做的是

    today: Date = new Date();
    endDate = new Date(2018,8,17);
    
    if(this.today > this.endDate){
       // Do Something
    }
    

    所以基本上你需要将你的日期字符串转换成一个日期对象,然后你可以像比较任何其他值一样比较你的两个日期..

    创建日期对象的语法如下

    new Date(year, month, day, [hour, minute, second, millisecond])
    

    你可以在这里看到工作代码的堆栈闪电https://stackblitz.com/edit/angular-wpbkqu

    【讨论】:

    • 我收到此错误消息:模块解析失败:无效编号 (24:43) 您可能需要适当的加载程序来处理此文件类型。
    • 您的代码有错误 new Date(2018,09,17) 与 9/17/18 不同,因为月份从 0 开始计算。所以正确的是 new Date(2018,08,17 )
    • 导出类 AppComponent { today=new Date(); endDate=new Date(2018,09,17,22,0,0,0);if(this.today >this.endDate ){...}}
    • @Sara Ive 更新了答案,你把日期写错了
    • @Sara - 创建日期时,使用 89 表示月份,而不是 09(删除前导零)。
    【解决方案2】:

    你可以使用moment.js,很简单

    const now = moment(new Date());
    const target = moment('9/17/18, 9:00');
    const isOver = now.diff(target, 'seconds') < 0;
    console.log('isOver' , isOver);
    &lt;script src="http://momentjs.com/downloads/moment.js"&gt;&lt;/script&gt;

    【讨论】:

      【解决方案3】:

      这是有效的。export class AppComponent implements OnInit { today:Date=new Date(); endDate:Date=new Date('September 17, 2018 22:00:00'); ngOnInit() {if(this.today &gt;this.endDate){ console.log("closed"); } }}谢谢大家的评论和时间

      【讨论】:

      • 我虽然这可能对某人有所帮助。但是这个答案有什么问题以及为什么我得到了反对票。请帮助我理解。
      猜你喜欢
      • 1970-01-01
      • 2011-12-31
      • 2019-05-28
      • 2019-01-10
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多