7
votes

Calculer la quantité de temps jusqu'à la prochaine heure

Je travaille sur un projet de site Web de bus et les bus courent toutes les heures. J'ai du mal à créer un widget qui trouve le temps passé entre maintenant et la prochaine heure, de sorte qu'il soit clair lorsque le prochain bus fonctionnera. Mon client exige qu'il soit en JavaScript. Aucune suggestion? Merci d'avance.


2 commentaires

Quel code avez-vous jusqu'à présent?


Vous n'avez pas vraiment besoin du temps avant la prochaine heure, vous avez besoin du temps plus un delta, sauf s'il n'y a que un arrêtez-vous sur la route de bus et le bus l'arrive exactement à l'heure.


5 Réponses :


1
votes

Vous avez l'objet de date dans JavaScript, vous pouvez faire quelque chose comme: XXX

Bien sûr, vous devrez travailler davantage sur ces calculs, mais c'est comme ça que vous travaillez avec le temps dans JavaScript < / p>


0 commentaires

6
votes
function getMinutesUntilNextHour() { return 60 - new Date().getMinutes(); }
Note that people who's system clocks are off will miss their bus. It might be better to use the server time instead of the time on the client's computer (AKA at least partly a non-client-side-javascript solution).

0 commentaires

1
votes

L'une des deux autres réponses fonctionnera bien, mais êtes-vous au courant des documents dont vous disposez de toutes les autres choses de belles choses que JS peut faire pour vous?

MOZILLA DATE DOCS

https://developer.mozilla.org/fr/javascript/javaScript/javaScript/Reference/ Global_objects / date


0 commentaires

0
votes

Beaucoup de réponses, une fonction vraiment simple pour que les minutes arrondies restantes à la prochaine heure sont les suivantes:

function minsToHour() {
  return 60 - Math.round(new Date() % 3.6e6 / 6e4);
}


2 commentaires

Il ne serait-il pas plus logique de soustraire date # getminutes () à partir de 60 plutôt que l'approche ici? Il est difficile de dire ce qui se passe, je suis sûr que c'est hors d'une minute, et cela échoue pour des dates loin dans le passé. De plus, l'approche getminutes est moins de code pour écrire et plus facile à retenir.


Pourquoi les gens attendraient-ils des bus "loin dans le passé"? Quoi qu'il en soit, c'est juste une autre façon de le faire. Les arrondis ci-dessus, donc dans les 30 dernières secondes, il devrait indiquer 0, en utilisant getmintus () montrera 0 dans la dernière minute, à moins que vous ne traitez pas de secondes. Mais je doute que cela compte de toute façon, à quel point les bus collent exactement à l'horaire?



13
votes

Pour connaître exactement les Milisecondes à partir de maintenant l'heure suivante:

function msToNextHour() {
    return 3600000 - new Date().getTime() % 3600000;
}


0 commentaires