J'essaie d'obtenir une différence entre deux dates en quelques secondes. La logique serait comme ceci:
- fixer une date initiale qui serait maintenant;
- définir une date finale qui serait la date initiale plus un certain nombre de secondes dans le futur (disons 15 par exemple)
- obtenir la différence entre ces deux (le nombre de secondes)
La raison pour laquelle je le fais avec des dates c'est parce que la date / heure finale dépend de certaines autres variables et ce n'est jamais la même chose (cela dépend de la vitesse à laquelle un utilisateur fait quelque chose) et je stocke également la date initiale pour d'autres choses.
J'ai essayé quelque chose comme ça:
var _initial = new Date(),
_initial = _initial.setDate(_initial.getDate()),
_final = new Date(_initial);
_final = _final.setDate(_final.getDate() + 15 / 1000 * 60);
var dif = Math.round((_final - _initial) / (1000 * 60));
Le truc, c'est que je n'ai jamais la bonne différence. J'ai essayé de diviser par 24 * 60
ce qui me laisserait les secondes, mais je n'ai jamais bien compris. Alors, quel est le problème avec ma logique? Je fais peut-être une erreur stupide car il est assez tard, mais cela me dérange de ne pas pouvoir le faire fonctionner :)
la source
Réponses:
Le code
Ou encore plus simple
(endDate - startDate) / 1000
comme indiqué dans les commentaires, sauf si vous utilisez du dactylographie.L'explication
Vous devez appeler la
getTime()
méthode pour lesDate
objets, puis simplement les soustraire et les diviser par 1000 (car c'est à l'origine en millisecondes). De plus, lorsque vous appelez lagetDate()
méthode, vous obtenez en fait le jour du mois sous la forme d'un entier compris entre 1 et 31 (non basé sur zéro) par opposition à l'heure que vous obtiendrez en appelant lagetTime()
méthode, représentant le nombre de millisecondes depuis le 1er janvier 1970, 00:00Rant
En fonction de vos opérations liées à la date, vous voudrez peut-être investir dans l'intégration d'une bibliothèque telle que date.js ou moment.js, qui facilitent tellement les choses pour le développeur, mais ce n'est qu'une question de préférence personnelle.
Par exemple dans moment.js nous ferions ce
moment1.diff(moment2, "seconds")
qui est beau.Documents utiles pour cette réponse
la source
.valueOf()
, ce que l'-
opérateur appellerait dans tous les cas ...Vous pouvez utiliser
new Date().getTime()
pour obtenir des horodatages. Ensuite, vous pouvez calculer la différence entre la fin et le début et enfin transformer l'horodatagems
ens
.la source
la source
Le code ci-dessous donnera le décalage horaire en seconde.
la source
essayez d'utiliser les fonctions dédiées des langages de programmation de haut niveau. JavaScript
.getSeconds();
convient ici:la source
décalage horaire entre maintenant et 10 minutes plus tard en utilisant momentjs
la source