it-swarm.com.de

Berechnen Sie die Differenz zwischen zwei Zeitstempeln mithilfe von Javascript

Ich muss die Differenz zwischen zwei Zeitstempeln berechnen. Kannst du mir auch bei der Konvertierung einer Zeichenkette in Zeitstempel helfen? Verwenden Sie nur einfaches Javascript. KEINE JQUERY.

Hier ist meine Funktion:

function clearInactiveSessions()
{
    alert("ok");
    <c:if test="${not empty pageScope.sessionView.sessionInfo}">
        var currentTime = new Date().getTime();
        alert("curr:"+currentTime);
        var difference=new Date();
        <c:forEach items="${pageScope.sessionView.sessionInfo}" var="inactiveSession">
            var lastAccessTime = ${inactiveSession.lastUpdate};
            difference.setTime(Maths.abs(currentTime.getTime()-lastAccessTime.getTime()));
            var timediff=diff.getTime();
            alert("timediff:"+timediff);
            var mins=Maths.floor(timediff/(1000*60*60*24*60));
            alert("mins:"+mins);
            if(mins<45)
                clearSession(${item.sessionID});
        </c:forEach>
    </c:if>
}
12
swateek

ich poste mein eigenes Beispiel, versuche es in deinem Code 

FUNCTION timeDifference(date1,date2) {
        var difference = date1.getTime() - date2.getTime();

        var daysDifference = Math.floor(difference/1000/60/60/24);
        difference -= daysDifference*1000*60*60*24

       var hoursDifference = Math.floor(difference/1000/60/60);
        difference -= hoursDifference*1000*60*60

        var minutesDifference = Math.floor(difference/1000/60);
        difference -= minutesDifference*1000*60

        var secondsDifference = Math.floor(difference/1000);

     document.WRITE('difference = ' + daysDifference + ' day/s ' + hoursDifference + ' hour/s ' + minutesDifference + ' minute/s ' + secondsDifference + ' second/s ');
30
Anuj

Basierend auf der genehmigten Antwort:

function(timestamp1, timestamp2) {
    var difference = timestamp1 - timestamp2;
    var daysDifference = Math.floor(difference/1000/60/60/24);

    return daysDifference;
}
6
Combine

Wenn Ihre Zeichenfolge "Mon May 27 11:46:15 IST 2013" ist, können Sie sie in ein Datumsobjekt konvertieren, indem Sie die Bits parsen (vorausgesetzt, es werden monatlich 3-stellige englische Namen angenommen, passen Sie sie ggf. an):

// Convert string like Mon May 27 11:46:15 IST 2013 to date object 
function stringToDate(s) {
  s = s.split(/[\s:]+/);
  var months = {'jan':0, 'feb':1, 'mar':2, 'apr':3, 'may':4, 'jun':5, 
                'jul':6, 'aug':7, 'sep':8, 'oct':9, 'nov':10, 'dec':11};
  return new Date(s[7], months[s[1].toLowerCase()], s[2], s[3], s[4], s[5]);
}

alert(stringToDate('Mon May 27 11:46:15 IST 2013'));

Wenn Sie Datumsfolgen in derselben Zeitzone verwenden, können Sie die Zeitzone für Differenzberechnungen ignorieren. Wenn sie sich in unterschiedlichen Zeitzonen befinden (einschließlich der Sommerzeit), müssen Sie diese Unterschiede berücksichtigen.

0
RobG