2016-06-02 8 views
0

Ich benutze jquery datetimepicker, ich möchte den Unterschied zwischen Startzeit und Endzeit bekommen.Wie berechnet man den Unterschied zwischen 2 mal in jquery datetimepicker?

Wie kann ich es mit Javascript/jquery Code berechnen?

Ich habe die Start- und Endzeit in HTML wie eingerichtet.

<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> 

Und meine Jquery-Codes durch seinen Wert erhalten:

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

Curently ich es manuell mache die Stunde und Minuten durch die Spaltung. Fügen Sie eine Validierung hinzu, indem Sie die Werte vor dem Subtrahieren überprüfen.

Gibt es einen besten Weg, es zu tun?

Bitte helfen. Vielen Dank.

+0

dies kann man https://jsfiddle.net/taditdash/kh0ptnu5/ eine Vorstellung geben –

+0

Verwenden Sie jquery.timepicker? – Sami

+0

Hallo @Sami, nein. Ich benutze bootstrap-datetimepicker. –

Antwort

0

Dank @Felix Kling, GELÖST 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);