簡體   English   中英

如何在AngularJS中比較兩個日期?

[英]How to compare two dates in AngularJS?

首先,我只想說我搜索了Stack Overflow,但找不到特定問題的答案,但是如果我錯過了一個,這是重復的,我深表歉意。

所以我正在使用AngularJS制作任務管理器,並且我有一個包含任務列表的表。 這是我的表代碼:

<thead>
    <tr>
        <th><b>ID</b></th>
        <th><b>Title</b></th>
        <th><b>Start Date</b></th>
        <th><b>End Date</b></th>
        <th><b>Type</b></th>
        <th></th>
    </tr>
</thead>
<tbody>
    <tr ng-repeat="task in tasks track by $index">
        <td>{{task.id}}</td>
        <td>{{task.title}}</td>
        <td>{{task.start_date}}</td>
        <td>{{task.end_date}}</td>
        <td>{{task.type}}</td>
        <td><a ng-click="remove(task)"<i class="material-icons">clear</i></a></td>
    </tr>
</tbody>

如您所見,每個任務都有一個ID,標題,開始日期,結束日期,類型,然后該表的每行中都有一個按鈕來刪除任務。

這是功能remove(task)的代碼:

$scope.remove = function(task)
{
    $scope.tasks.splice($scope.tasks.indexOf(task), 1);
};

現在,這很重要。 如果當前日期晚於結束日期,則應該毫無問題地刪除任務。 但是,如果當前日期早於結束日期,則程序需要啟動帶有字段的彈出窗口,以便用戶可以寫出早日取消任務的理由。

因此,我的問題是:如何比較結束日期​​和當前日期?

不用擔心彈出窗口,我只需要“ if語句”方面的幫助。 我自己寫彈出窗口。

我也有moment.js,因此您可以根據需要使用它。

編輯:這是我的日期格式。 我有一個日期選擇器,它以以下格式給出日期:YYYY-MM-DD。 然后我有一個時間選擇器,它以以下格式給出時間:hh:mm。 這就是我將兩者結合的方式:

$scope.tasks.push({
            'id': tasks.id,
            'title': tasks.title,
            'start_day': tasks.start_day,
            'start_time':tasks.start_time,
            'start_date':tasks.start_day + " " + tasks.start_time,
            'end_day': tasks.end_day,
            'end_time': tasks.end_time,
            'end_date':tasks.end_day + " " + tasks.end_time,
            'type': tasks.type
        });

因此,日期選擇器日期存儲在tasks.end_day ,而時間選擇器時間存儲在tasks.end_time ,我將它們與'end_date':tasks.end_day + " " + tasks.end_time結合在一起'end_date':tasks.end_day + " " + tasks.end_time因此最終日期的格式為YYYY-MM-DD hh:mm

moment.js文檔

var isSameOrBefore = moment().isSameOrBefore(task.end_date);
var isBefore = moment().isBefore(task.end_date);

當不帶參數調用moment() ,它將使用當前日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM