2016-06-02 17 views
0

Я использую jquery datetimepicker, я хочу получить разницу между временем начала и временем окончания.Как вычислить разницу между 2 раза в jquery datetimepicker?

Как вычислить его с помощью кода javascript/jquery?

Я установил время начала и окончания в html как.

<div class='input-group date' id='time_starts_at'> 
    <input class="form-control" placeholder="Time Start's At *" autocomplete="off" type="text" name="" id="calendar_starts_at_time"> 
    <span class="input-group-addon"> 
    <span class="glyphicon glyphicon-time"></span> 
    </span> 
</div> 

<div class='input-group date' id='time_ends_at'> 
    <input class="form-control" placeholder="Time End's At *" autocomplete="off" type="text" name="" id="calendar_ends_at_time"> 
    <span class="input-group-addon"> 
     <span class="glyphicon glyphicon-time"></span> 
    </span> 
</div> 

И, мои JQuery коды по получению его значения:

var timeFrom = $start_time.data('date'); 
var timeTo = $end_time.data('date'); 

Curently, я делаю это вручную, разделив часы и минуты. Добавление проверки на него путем проверки значений перед вычитанием.

Есть ли лучший способ сделать это?

Пожалуйста, помогите. Спасибо.

+0

это может дать вам некоторое представление о https://jsfiddle.net/taditdash/kh0ptnu5/ –

+0

Вы используете jquery.timepicker? – Sami

+0

Привет @Sami, нет. Я использую bootstrap-datetimepicker. –

ответ

0

решаемые

Благодаря @Felix Клинг, How do I calculate the time difference between strings in Javascript

function toSeconds(time_str) { 
    // Extract hours, minutes and seconds 
    var parts = time_str.split(':'); 
    // compute and return total seconds 
    return parts[0] * 3600 + // an hour has 3600 seconds 
    parts[1] * 60; // a minute has 60 seconds 
} 

var a = "10:55" //start time 
var b = "12:00" // end time 

var difference = Math.abs(toSeconds(a) - toSeconds(b)); 

// format time difference 
var result = [ 
    Math.floor(difference/3600), // an hour has 3600 seconds 
    Math.floor((difference % 3600)/60), // a minute has 60 seconds 
    difference % 60 
]; 
// 0 padding and concatation 
result = result.map(function(v) { 
    return v < 10 ? '0' + v : v; 
}).join(':'); 
alert(result);