2017-01-20 6 views
1

Ich habe jquery Stunden Bereich Picker und ich bin nicht mit 'am' & 'PM' Notation. Ich bevorzuge 24h. Ich muss den Stundenunterschied zwischen ausgewählten Stunden berechnen.So behandeln Sie Stunden Unterschied zwischen Zeiten

Benutzer wählt '09:00' & '12:00' -> 3 hours

Mein Problem mit, wenn er wählt '20:00' & '00:00' -> must be 4 Stunden gibt aber negativ. Alternative; '23:00' & '02:00' -> negative

Sollte ich abs nehmen? oder anders?

+3

'wenn hoursA> hoursB' 24 Stunden In B, dann A subtrahiert - vorausgesetzt, es wird nur ein einziger Tag zwischen den Terminen sein –

+0

wenn Stunden sind negativ, addiere 24 zum ersten Wert – Svekke

+0

@PraveenTiwari, die '21' Stunden für die OPs geben würde letztes Beispiel –

Antwort

1

Fügen Sie einfach, wenn Scheck an den Unterschied, den Sie bekommen, und wenn 24 Stunden negativ ist hinzufügen, um es

var diff = function(a,b) { 
    var difference = b - a; 
    if (difference < 0) { 
    return difference + 24; 
    } else { 
    return difference; 
    } 
} 

Natürlich müssen Sie Ihre Zeit zuerst analysieren. Hier ist eine Geige mit Warnungen anstelle von Returns. Aber das ist der einfachste Weg, ich denke, aber mb nicht die besten fiddle

+1

Downvote ist nicht meins, aber Sie haben verpasst a ')' und du gibst nichts außerhalb der 'if'-Anweisung zurück. Auch eine Beschreibung des Problems und warum dies behebt, würde helfen, das OP und alle zukünftigen Besucher zu dieser Frage zu erziehen. –

+0

Yeah sry hat gerade versucht, der Erste zu sein: D – JavaEvgen

1

Sie müssen Modulo verwenden. Leider ist Javascript modulo falsch.

Number.prototype.mod = function(n) { 
 
    return ((this % n) + n) % n; 
 
}; 
 

 
console.log((0 - 20).mod(24));

Verwandte Themen