我遇到了一个必须根据时间改变路径的情况。
我将有两个日期变量CheckInStartDate
和CheckInEndDate
,它们将来自API。
当前时间是系统日期时间。
路径必须在两个条件下改变。
CheckInStartDate
减去当前时间1小时CheckInEndDate
加上当前时间的1小时。这是我目前的代码。
$scope.checkIn = function() {
var ONE_HOUR = 60 * 60 * 1000; /* ms */
$scope.checkInStartDate= 01/16/2017 09:06:00 AM;
$scope.checkInEndDate= 01/16/2017 11:06:00 AM;
var checkInStartDate=$scope.checkInStartDate;
var checkInEndDate=$scope.checkInEndDate;
var currentDate = new Date();
var checkinStartDate=new Date(checkInStartDate);
var checkinEndDate = new Date(checkInEndDate);
if ((checkinStartDate.getTime()) > (currentDate.getTime() - ONE_HOUR) ||
(checkinEndDate.getTime()) < (currentDate.getTime() + ONE_HOUR)) {
$location.path('/checkIn')
}
else{
alert("cannot checkin");
}
}
答案 0 :(得分:1)
如果我正确地提出了您的问题,您希望允许在以下两次之间的时间段内办理登机手续:
让我们调用第一个点s
和第二个点e
。当前时间是c
。在这种情况下,
s < c < e
在JavaScript中,这是等效的:
var s = new Date($scope.checkInStartDate).getTime() - ONE_HOUR;
var e = new Date($scope.checkInEndDate).getTime() + ONE_HOUR;
var c = new Date().getTime();
if (s < c && c < e) {
// check-in allowed
} else {
// not allowed
}