如何在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结合起来,因此最终日期的格式为YYYY-MM-DD hh:MM

来自moment.js文档:

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

在不带参数的情况下调用moment()时,它使用当前日期。

相关内容

  • 没有找到相关文章

最新更新