首先,我只想说我搜索了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);
};
现在这很重要。如果当前日期晚于结束日期,则应该删除该任务没有问题。但是,如果当前日期是之前和结束日期,程序需要启动一个带有字段的弹出窗口,以便用户可以写出提前取消任务的理由。
所以,我的问题是:如何将结束日期与当前日期进行比较?
不要担心弹出窗口,我只需要帮助#34; if语句&#34;。我自己写弹出窗口。
我也有 moment.js ,所以如果你愿意,可以使用它。
编辑:这是我的日期格式化方式。我有一个datepicker,它以这种格式给出日期: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
});
因此,datepicker日期存储在tasks.end_day
中,时间戳时间存储在tasks.end_time
中,我将它们与'end_date':tasks.end_day + " " + tasks.end_time
合并,因此最终日期的格式为 YYYY-MM-DD hh:mm 。
答案 0 :(得分:2)
var isSameOrBefore = moment().isSameOrBefore(task.end_date);
var isBefore = moment().isBefore(task.end_date);
在没有参数的情况下调用moment()
时,它会使用当前日期。