gpt4 book ai didi

javascript - 如何在angularjs中将字符串时间转换为日期时间

转载 作者:行者123 更新时间:2023-11-28 05:59:21 25 4
gpt4 key购买 nike

我试图将当前时间与预定义时间进行匹配,但我陷入了匹配,因为它们在 string 中。这是我的代码

$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: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
}

关于javascript - 如何在angularjs中将字符串时间转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37405907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com