Je veux afficher x seconds ago
basé sur un horodatage MySQL.
J'ai trouvé le plugin appelé timeago
Mais je ne peux pas trouver un moyen de le faire afficher seulement quelques secondes.
Je vais bien avec 61 secondes ou 300 secondes. Est-il possible de convertir la sortie en secondes avec timeago ou avec jQuery/JavaScript pur?
Merci pour toute aide !
Exemple de cas:
$time1 = "2014-02-02 23:54:04"; // plus PHP ways to format it.
//$time2 = NOW() , or date(); whatever.
Je veux juste savoir combien de secondes depuis $time1
.
Code de travail:
<script type="text/javascript">
$(function(){
var d2 = new Date();
var d1 = new Date("2014-02-02 23:54:04");
$("a#timedif").html("Diff. Seconds : "+((d2-d1)/100).toString());
// note that you may want to round the value
});
</script>
Il génère Diff. Seconds : NaN
en supposant que vous analysiez la chaîne dans un objet de date JavaScript, vous pouvez faire (date2 - date1)/1000
pour analyser l'horodatage au format mysql, il suffit d'introduire la chaîne dans le nouveau Date ():
var d2 = new Date('2038-01-19 03:14:07');
var d1 = new Date('2038-01-19 03:10:07');
var seconds = (d2- d1)/1000;
correction de l'édition 2 dans la question:
<script type="text/javascript">
$(function(){
var d2 = new Date();
var d1 = new Date("2014-02-02 23:54:04");
$("a#timedif").html("Diff. Seconds : "+((d2-d1)/1000).toString());
});
Si vous êtes d'accord avec ce plugin, vous pouvez le modifier un peu pour ne travailler qu'avec quelques secondes
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
seconds < 90 && substitute($l.minute, 1) ||
minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
minutes < 90 && substitute($l.hour, 1) ||
hours < 24 && substitute($l.hours, Math.round(hours)) ||
hours < 42 && substitute($l.day, 1) ||
days < 30 && substitute($l.days, Math.round(days)) ||
days < 45 && substitute($l.month, 1) ||
days < 365 && substitute($l.months, Math.round(days / 30)) ||
years < 1.5 && substitute($l.year, 1) ||
substitute($l.years, Math.round(years));
avec cette partie, n'allez qu'avec la conversion en secondes
voir le violon: http://jsfiddle.net/zGXLU/1/
Mon travail avec la différence de temps pour calculer chaque valeur séparément
var start = new Date('Mon Jul 30 2018 19:35:35 GMT+0500');
var end = new Date('Mon Jul 30 2018 21:15:00 GMT+0500');
var hrs = end.getHours() - start.getHours();
var min = end.getMinutes() - start.getMinutes();
var sec = end.getSeconds() - start.getSeconds();
var hour_carry = 0;
var minutes_carry = 0;
if(min < 0){
min += 60;
hour_carry += 1;
}
hrs = hrs - hour_carry;
if(sec < 0){
sec += 60;
minutes_carry += 1;
}
min = min - minutes_carry;
console.log("hrs",hrs);
console.log("min",min);
console.log("sec",sec);
console.log(hrs + "hrs " + min +"min " + sec + "sec");
jQuery est juste une bibliothèque JavaScript, donc JavaScript fonctionnera simplement dans votre script jQuery:
// specified date:
var oneDate = new Date("November 02, 2017 06:00:00");
// number of milliseconds since midnight Jan 1 1970 till specified date
var oneDateMiliseconds = oneDate.getTime();
// number of milliseconds since midnight Jan 1 1970 till now
var currentMiliseconds = Date.now();
// return time difference in milliseconds
var timePassedInMilliseconds = (currentMiliseconds-oneDateMiliseconds)/1000;
alert(timePassedInMilliseconds);