【问题标题】:Can't compare dates in Angular 2+无法比较 Angular 2+ 中的日期
【发布时间】:2019-01-10 14:08:16
【问题描述】:

我有 2 个日期需要做一些逻辑处理。第一个日期来自 SQL 数据库,第二个日期是来自角度的当前日期。 如果 SQL 日期较早,我想在 HTML 表格中显示它们,应用 css 样式behind 和以后,应用 ahead css 样式。

我在component.ts 中使用的当前日期是:

today: any = Date.now();

我使用ngIf 的 HTML 表格是:

<td *ngIf="p.serverDate >= today" class="ahead">{{ p.serverDate | date }}</td>
<td *ngIf="p.serverDate < today" class="behind">{{ p.serverDate | date }}</td>

p 是从数据库返回的包含日期的对象。我很确定我有serverDatetoday。我可以在它们两个上使用date 管道。为什么我不能在这里使用简单的 if 语句?

更新:我刚刚发现 serverDate2018-07-24T20:34:48today1533235371115 格式。

【问题讨论】:

  • I can't use 是什么意思?你有错误吗?还是没有显示&lt;td&gt;
  • 你试过+p.serverDate &gt;= +todayp.serverDate.getTime() &gt;= today.getTime()你需要比较“=”的毫秒数否则会返回错误的结果。
  • 在我当前的设置中,没有进行任何比较。基本上,td 什么都没有。我使用了+getTime(),我收到getTime() 不是函数
  • 你可以做一些事情来帮助调试是*ngIf="compareFn(p.server, today)",然后在组件中做类似compareFn(s, t){ console.log(s, t, s &lt; t)}的事情
  • @GoGO 您是否尝试将server 替换为serverDate?如果是这样,请更新问题以更正错字。

标签: html angular date


【解决方案1】:

可能是来自 MySQL 数据库的日期可能是字符串。您需要使用 new Date() 进行转换。 对于任何日期操作,您可以查看 moment.js 库或 date-fns 库。为了比较黑白日期,请使用https://momentjs.com/docs/ 中的 isBefore() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2015-08-22
    • 1970-01-01
    相关资源
    最近更新 更多