[英]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.