簡體   English   中英

如何在angularjs中轉換字符串時間到日期時間

[英]How to convert String time to date time in angularjs

我試圖與預定時間匹配當前時間,但我陷入了匹配,因為這些是在字符串中。 這是我的代碼

$scope.TimeString = "17:00-21:00,7:00-10:00,9:45-12:00";
 $scope.currentTime = $filter('date')(new Date(), 'HH:mm');
$scope.IsItemAvailable = function (timeString) {

                var tempTimeArray = "";
                tempTimeArray = timeString.split(",");
                for (var i = 0; i < tempTimeArray.length; i++) {
                    var tempTime = tempTimeArray[i];
                    var itemTime = tempTime.split("-")
                    var fromTime = $filter('date')(itemTime[0], 'HH:mm');
                    var toTime = $filter('date')(itemTime[1], 'HH:mm');
                if ($scope.currentTime >= fromTime && $scope.currentTime <= toTime) {
                        $scope.isAvailable = true;
                        break;

                    }
                    else {

                        $scope.isAvailable = false;
                    }
}
it's returning false always.Any please help me to acheive it.

如果你可以將你的時間轉換為零填充: 09:5509:55然后你可以將它作為字符串進行比較(如果你沒有午夜包含的間隔)。

否則你可以將hh:mm轉換為分鍾數,然后進行比較:

var cur = $scope.currentTime.split(':');
var from = itemTime[0].split(':');
var to   = itemTime[1].split(':');
cur  =  cur[0]*60+ cur[1];
from = from[0]*60+from[1];
to   =   to[0]*60+  to[1];
if (cur >= from && cur <= to) {
  // available
}

一些DRY解決了:

var times = [$scope.currentTime, itemTime[0], itemTime[1]];
  times.map(interval => interval.split(':'))
       .map(interval => interval[0]*60 + interval[1]);
if (times[0] >= times[1] && times[0] <= times[2]) {
   // available
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM