2017-05-20 3 views
-1

Ich möchte den Unterschied zwischen zwei Mal bekommen. Die erste ist das aktuelle Zeitobjekt, das ich mit Javascript Datum Objekt new Date() und der zweite ist eine Zeichenfolge wie "20:30". So nehmen an, wenn aktuelle Uhrzeit 18:00 dann ist Ich möchte nur den Unterschied, wie die „2 Stunden und 30 Minuten übrig. Vielen Dank für jede Art von Hilfe.Wie man zwischen zwei Zeiten unterscheidet?

+0

Ich glaube, Sie hier die Frage lesen konnte. [date-diff-javascript] (http://stackoverflow.com/questions/34386175/date-diff-javascript) – dawnfly

+2

Mögliches Duplikat von [Zeitunterschied in Javascript prüfen] (http://stackoverflow.com/questions/1787939/check-time-difference-in-javascript) – mehulmpt

Antwort

0

Einfachste ist moment.js die Bibliothek zu verwenden, die gleichzeitig verarbeiten kann/. Datum Manipulation gut

+0

Gibt es eine Möglichkeit, das mit den verfügbaren JavaScript-Datumsfunktionen zu tun? –

+0

@SKJajoriya Ja, Sie können das Datum mit "Date" analysieren, wenn Sie möchten, finden Sie in diesem Thread zum Beispiel: http://stackoverflow.com/questions/5619202/converting-string-to-date-in-js Und vergleichen Sie einfach die beiden Daten und erhalten Sie den Unterschied. – rymdmaskin

0

wie unten Versuchen:

var date1 = new Date(2000, 0, 1, 20, 30); 
var date2 = new Date(2000, 0, 1, 18, 0); 

var diff = date1-date2;//milli seconds 


var min = diff/1000/60; 
var r = min % 1; 
var h=min/60; 
var sec = Math.floor(r * 60); 
if (sec < 10) { 
    sec = '0'+sec; 
} 
    alert(min+'-'+ sec); 
0

Sie die Date.Parse() Funktion mit einer Zeichenfolge wie Date.parse("1970 1 1 20:30") verwenden könnten eine JavaScript-Datum Zeit zu bekommen, dann folgen this post, wie die Zeitdifferenz betwe erhalten de die beiden Javascript-Datumsobjekte.

Hoffe, das hilft!

0

Verwenden Sie Funktionen, die in Date Objekt verfügbar sind.

var origTime = '20:30'.split(':'); 
var dateA = new Date(); 
dateA.setHours(origTime[0]); 
dateA.setMinutes(origTime[1]); 
var dateB = new Date(); 
var hourDiff = Math.abs(dateA - dateB)/36e5; 
0

Hier ist, wie Sie es nur Vanille Js mit tun können:

var compareDate = new Date(); 
var timeParts = "20:30".split(":"); 
compareDate.setHours(Number(timeParts[0])); 
compareDate.setMinutes(Number(timeParts[0])); 
compareDate.setSeconds(0); 
compareDate.setMilliseconds(0); 

var diff = compareDate - new Date(); 
var diffInMinutes = Math.floor(diff/1000/60); 
var hours = Math.floor(diffInMinutes/60); 
var minutes = diffInMinutes % 60; 

hours + " hours and " + minutes + " minutes left"; 

Wir sind „Normalisierung“ Sekunden und Millisekunden, indem sie auf 0 setzen, sonst werden sie sein, was sie waren, als new Date() wurde aufgerufen.

1

$(document).ready(function() { 
 
    function calculateTime() { 
 

 
    var valuestop = $("select[name='timestop']").val(); 
 

 
    var timeStart = new Date().getTime();//current time 
 
    var timeEnd = new Date(new Date().toJSON().slice(0, 10).replace(/-/g, '/') + ' ' + valuestop).getTime();//selected time 
 
    console.log(timeStart + ' ' + timeEnd); 
 
    var hourDiff = timeEnd - timeStart; //in ms 
 
    var secDiff = hourDiff/1000; //in s 
 
    var minDiff = hourDiff/60/1000; //in minutes 
 
    var hDiff = hourDiff/3600/1000; //in hours 
 
    var humanReadable = {}; 
 
    humanReadable.hours = Math.floor(hDiff); 
 
    humanReadable.minutes = Math.round(minDiff - 60 * humanReadable.hours); 
 
    console.log(humanReadable); //{hours: 0, minutes: 30} 
 
    $("p").html("Difference: <b>Hours: </b>" + humanReadable.hours + "<b>Minutes: </b>" + humanReadable.minutes); 
 
    } 
 
    $("select").change(calculateTime); 
 
    calculateTime(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select name="timestop"> 
 
    <option value="00:00:00">12:00 am</option> 
 
    <option value="01:00:00">1:00 am</option> 
 
    <option value="02:00:00">2:00 am</option> 
 
    <option value="03:00:00">3:00 am</option> 
 
    <option value="04:00:00">4:00 am</option> 
 
    <option value="05:00:00">5:00 am</option> 
 
    <option value="06:00:00">6:00 am</option> 
 
    <option value="07:00:00">7:00 am</option> 
 
    <option value="08:00:00">8:00 am</option> 
 
    <option value="09:00:00">9:00 am</option> 
 
    <option value="10:00:00">10:00 am</option> 
 
    <option value="11:00:00">11:00 am</option> 
 
    <option value="12:00:00">12:00 pm</option> 
 
    <option value="13:00:00">1:00 pm</option> 
 
    <option value="14:00:00">2:00 pm</option> 
 
    <option value="15:00:00">3:00 pm</option> 
 
    <option value="16:00:00">4:00 pm</option> 
 
    <option value="17:00:00">5:00 pm</option> 
 
    <option value="18:00:00">6:00 pm</option> 
 
    <option value="19:00:00">7:00 pm</option> 
 
    <option value="20:00:00">8:00 pm</option> 
 
    <option value="21:00:00">9:00 pm</option> 
 
    <option value="22:00:00">10:00 pm</option> 
 
    <option value="23:00:00">11:00 pm</option> 
 
    </select> 
 

 
<p> </p>

Verwandte Themen