Je dois calculer la différence entre 2 timestamps. Aussi pouvez-vous s'il vous plaît m'aider à convertir une chaîne en timestamp. Utilisation de javascript simple uniquement. NO JQUERY.
Voici ma fonction:
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>
}
je poste mon propre exemple essayez d'implémenter cela dans votre 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 ');
Basé sur la réponse approuvée:
function(timestamp1, timestamp2) {
var difference = timestamp1 - timestamp2;
var daysDifference = Math.floor(difference/1000/60/60/24);
return daysDifference;
}
Si votre chaîne est lun 27 mai 11:46:15 IST 2013, vous pouvez le convertir en objet date en analysant les bits (en supposant que les noms anglais à 3 lettres des mois soient ajustés au besoin):
// 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'));
Notez que si vous utilisez des chaînes de date dans le même fuseau horaire, vous pouvez ignorer le fuseau horaire pour les calculs de différence. S'ils se trouvent dans des fuseaux horaires différents (y compris les différences d'heure), vous devez alors prendre en compte ces différences.