2016-11-02 4 views
0

nehme an, ich habe diese Variable Datum in Stunden: Minuten: Sekunden-FormatMinute Dauer Differenzierung javascript

var time1 = "12:34:19 PM" 
var time2 = "12:29:25 PM" 

Wie kann ich die differenzierbare (Dauer) von time1 und time2 bekommen? Und wie ändern wir es in ein Datumsformat, um Diff-Prozesse zu machen?

+1

lesen Und können Sie Ihre Bemühungen teilen? – Rajesh

+1

Mögliches Duplikat von [Unterschied zwischen zwei Daten in Minuten, Stunden Javascript] (http://stackoverflow.com/questions/20839874/difference-between-two-dates-in-minute-hours-javascript) – Rajesh

+0

Ich versuche ein paar Methoden des Differenzierungsdatums, und dann realisiere ich, dass time1-Daten String-Typen sind, also muss ich sie zuerst ändern ... aber jede Bemühung endet immer mit NaN, wie zum Beispiel mit strtodate oder definiere PHP-Variable –

Antwort

1

Sie die Zeit, neue Datum konvertieren() prepend nur ein Datum, bevor er und

erhalten ihre Zeitstempel getTime() mit und subtrahieren sie

var duration = new Date('datetime1').getTime() - new Date('datetime2').getTime() 

da der Zeitstempel 1000mal als das Ergebnis insgesamt Sekunden dividieren sie durch 1000

var duration = durantion/1000; 

und ich schaffe nur eine Funktion, die die Sekunden richtig formatieren macht es wie eine gültige duratio aussieht n Zeit

var time1 = "2016-11-02 12:34:19 PM" 
 
var time2 = "2016-11-02 12:29:25 PM" 
 

 
time1 = new Date(time1).getTime(); 
 
time2 = new Date(time2).getTime(); 
 
var duration = (time1 - time2)/1000; 
 

 
function formatTime(seconds) { 
 
    var minutes = Math.floor(((seconds/3600)%1)*60); 
 
    minutes = (minutes < 10) ? '0'+minutes : minutes; 
 
    var seconds = Math.round(((seconds/60)%1)*60); 
 
    seconds = (seconds < 10) ? '0'+seconds : seconds; 
 
    return minutes+':'+seconds; 
 
} 
 

 
console.log('Duration: ' + formatTime(duration)+' secs')

+0

Bitte lassen Sie OP teilen Bemühungen – Rajesh

+0

wenn neue Datum initialisieren müssen wir das Datum Monat und Jahr eingeben? Ich bekomme ein NaN, auch wenn ich Time1 –

+1

@RayanSuryadikara ja, Sie müssen das Datum und die Uhrzeit "2016-11-02 12:00:00 PM" zum Beispiel – Beginner

0

Dies funktioniert Skript

String.prototype.toHHMMSS = function() { 
    var sec_num = parseInt(this, 10); // don't forget the second param 
    var hours = Math.floor(sec_num/3600); 
    var minutes = Math.floor((sec_num - (hours * 3600))/60); 
    var seconds = sec_num - (hours * 3600) - (minutes * 60); 

    if (hours < 10) {hours = "0"+hours;} 
    if (minutes < 10) {minutes = "0"+minutes;} 
    if (seconds < 10) {seconds = "0"+seconds;} 
    return hours+':'+minutes+':'+seconds; 
} 
var timeStart = new Date("Mon Jan 01 2007 11:00:00 GMT+0530").getTime(); 
var timeEnd = new Date("Mon Jan 01 2007 11:32:51 GMT+0530").getTime(); 
var hourDiff = timeEnd - timeStart; //in ms 
var secDiff = (hourDiff/1000).toString(); //in s 
alert(secDiff .toHHMMSS()); 
+0

setzen Dies wird mit String-Datentyp arbeiten –

0

können Sie erstellen ein Date Objekte mit Konstruktor wie folgt aus: Date(year, month, date, hours, minutes, seconds, ms)

in Ihrem Fall können Sie diff bekommen :

var date = new Date(2000, 1, 1, 12, 34, 19, 0, 0), 
    date2 = new Date(2000, 1, 1, 12, 39, 25, 0, 0); 

console.log(date2 - date); // in ms. You can do whatever you want with this value 

können Sie mehr über Date Objekt here.