Nithu Nithiya Ответов: 1

Как рассчитать общую продолжительность от начала и до конца ?


Привет,
У меня есть время начала и время окончания с помощью Bootstrap timepicker, мне нужен результат общей продолжительности в часах и минутах , Как рассчитать затраты часов .? тем не менее ,сейчас я пробую время начала(10 утра) и время окончания (10 вечера) всего часов =12 часов , но я получаю результат 0 часов, до сих пор я вычисляю только цифры . Я не знаю, как рассчитать продолжительность времени в течение 24 часов ,ниже я прилагаю исходный код до сих пор я пытался, пожалуйста, дайте решение
@Html.TextBoxFor(model => model.StartTime, new {@class = "form-control input-small", @placeholder = "StartTime", @id = "startTime"})

                                             

 @Html.TextBoxFor(model => model.Endtime, new{  @class = "form-control input-small ", @placeholder = "Endtime",@id = "endTime" })
@Html.TextBoxFor(model => model.TotalHours, new { @class = "form-control Hours", @placeholder = "TotalHours", @id = "totalHours",@readonly = "readonly", @value="0"  })

<script>
  $(function () {
                function calculate() {
                    debugger;
                    var time1 = $("#startTime").val().split(':'), time2 = $("#endTime").val().split(':');
                    var hours1 = parseInt(time1[0], 10),
                    hours2 = parseInt(time2[0], 10),
                    
                    mins1 = parseInt(time1[1], 10),
                    mins2 = parseInt(time2[1], 10);
                    var hours = hours2 - hours1, mins = 0;
                    if (hours < 0) hours = 24 + hours;
                    if (mins2 >= mins1) {
                        mins = mins2 - mins1;
                    }
                    else {
                        mins = (mins2 + 60) - mins1;
                        hours--;
                    }
                    mins = mins / 60; // take percentage in 60
                    hours += mins;
                    hours = hours.toFixed(2);
                    $("#totalHours").val(hours);
                }
                $("#endTime").blur(calculate);
                calculate();


            });

</script>

1 Ответов

Рейтинг:
0

Karthik_Mahalingam

попробовать это

function Get24HourDate(str) {
           var dt = new Date();
           var parts = str.split(':');
           var hour = parseInt(parts[0]);
           var parts2 = parts[1].split(' ');
           var mis = parts2[0];
           var ampm = parts2[1];

           if (ampm.toLowerCase() == 'pm') {
               if (hour < 12)
                   hour += 12;
           }

           dt.setHours(hour, mis, 0);
           return dt;
       }

       function getDiff(timestart, timeEnd) {
           var timeStart = timestart.getTime();
           var timeEnd = timeEnd.getTime();
           var hourDiff = timeEnd - timeStart;  
           var secDiff = hourDiff / 1000; 
           var minDiff = hourDiff / 60 / 1000;  
           var hDiff = hourDiff / 3600 / 1000;  
           var hours = Math.floor(hDiff);
           var mins = minDiff - 60 * hours;

           return {
               hours: hours,
               mins: mins
           }
       }

       var timestart = Get24HourDate('10:00 AM');
       var timeEnd = Get24HourDate('10:00 PM');

       var obj = getDiff(timestart, timeEnd);
       alert(obj.hours);
       alert(obj.mins);