Это потому, что вы перезаписываете свойство disableTimeRanges
для каждого элемента массива.Таким образом, записывается только последний.
Чтобы исправить это, обратитесь к примеру из документации:
$('#disableTimeRangesExample').timepicker({
'disableTimeRanges': [
['1am', '2am'],
['3am', '4:01am']
]
});
Итак, сначала преобразуйте данные с сервера в соответствии с этим форматом и поместите ихв новый массив.Затем просто передайте массив в свойство 'disableTimeRanges'.
Измените:
$.each(data, function(key, value) {
$('#horaInicio').timepicker('remove').timepicker(
{'disableTimeRanges': [[value['dari'], value['sampai']], ] });
});
Кому:
let exclusions = data.map(item=>[item.value['Dari'], item.value['sampan']]);
$('#horaInicio').timepicker('remove').timepicker(
{'disableTimeRanges': exclusions });