当前时间加上一小时的条件

时间:2017-01-16 09:33:43

标签: javascript angularjs

我遇到了一个必须根据时间改变路径的情况。

我将有两个日期变量CheckInStartDateCheckInEndDate,它们将来自API。 当前时间是系统日期时间。

路径必须在两个条件下改变。

  1. CheckInStartDate减去当前时间1小时
  2. CheckInEndDate加上当前时间的1小时。
  3. 这是我目前的代码。

    $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");
        }
    }
    

1 个答案:

答案 0 :(得分:1)

如果我正确地提出了您的问题,您希望允许在以下两次之间的时间段内办理登机手续:

  • CheckInStartDate减1小时
  • CheckInEndDate加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
}