У меня часы открытия и закрытия, выберите выпадающий список.Это в основном, чтобы выбрать часы открытия и закрытия магазина.Я создал список часов с 15-минутным интервалом с 12:00 утра до 12:00 полуночи.
$scope.availableTimes = [];
$scope.availableTimes.push({
'msValue': 0,
'display': '12:00 Morning'
});
for (var msValue = 900000; msValue <= 85500000; msValue += 900000) { // 90.000ms = 15 min, 85.500.000ms = 11:45PM
$scope.availableTimes.push({
'msValue': msValue,
'display': moment(msValue).utc().format("h:mm A")
})
}
var dayMS = 86400000 - 1;
$scope.availableTimes.push({
'msValue': dayMS,
'display': '12:00 Midnight'
});
Но в некоторых случаях они могут выбрать
Время открытия : 11:00 и Время закрытия : 2:00 (послеполночь) всего 15 часов.
Чтобы справиться с этой ситуацией visually
Я сделал обходной путь.Я переставляю часы закрытия в соответствии с выбором часа открытия.
Пример:
Если час открытия , выбранный как 11:00, будут доступны доступные часы закрытия с 11:15 до 10:45.
Здесь указание составить список часов закрытия:
app.directive('closingTimeSync',function(){
return {
template: `<div class="col-xs-6">
<div class="form-group">
<label for="exampleFormControlSelect1">Closing Hours</label>
<select class="form-control" data-ng-options="time.display for time in closingTimes" data-ng-model="selectedToTime">
</select>
</div>
</div>`,
replace: true,
transclude: true,
link: function(scope) {
scope.automaticallySelectClosingTime = function(msValue) {
scope.closingTimes = scope.availableTimes;
var dayMS = 86400000 - 1;
var remainingTimings = [];
var index = scope.closingTimes.map(function(obj){return obj.msValue;}).indexOf(msValue);
index = (index === scope.availableTimes.length-1) ? 1 : index+1;
scope.closingTimes = scope.closingTimes.slice(index,scope.availableTimes.length);
if(msValue !== dayMS) {
remainingTimings = scope.availableTimes.slice(1,index -1);
}
scope.closingTimes = scope.closingTimes.concat(remainingTimings);
scope.selectedToTime = scope.closingTimes[0];
};
}
};
});
Плункер
Проблема:
Вы видите, я просто добавляю remainingTimings = scope.availableTimes.slice(1,index -1);
.Это дает возможность выбрать время после полуночи, но технически на миллисекундном уровне 2:00 утра меньше, чем 11:00 утра.
Как я могу добавить один дополнительный день в миллисекундах, если кто-то что-нибудь выберет после 12:00 полуночи?
Надеюсь, я смог объяснить четко.