compte à rebours jQuery / compter avec des valeurs côté serveur
-
20-09-2019 - |
Question
Script: http://keith-wood.name/countdown.htm
Daily réponse JSON:
items: { fajr: '5:23 am', sharooq: '7:23 am', dhur: '1:34 pm', asr: '4:66 pm': magrib: '6:23 pm', isha: '8:01 pm'}
Lorsque les charges du site, je fais une requête Ajax et obtenir les temps de réponse ci-dessus. Ce sont des événements qui se produisent tous les jours, avec des timings différents. Je veux que le temps et mettre un compte à rebours sur le nombre de minutes reste ou les heures ou secondes, et montrer que, et une fois que les secondes sont faites, puis montrer comment il y a de minutes que l'événement a eu lieu. Au bout de 15 minutes, montre un nouvel événement compte à rebours. Voici comment cela se penchera sur l'écran:
dhur 2 hours left
dhur 2 minutes left (if no longer hours left)
dhur 55 seconds left (if no longer minutes left)
dhur 5 seconds ago (if count down finished and then show how many seconds ago)
dhur 9 minutes ago (if extended more then seconds, then show how many minutes ago)
asr 1 hour left (after 15 minutes later time changes to new event)
Si le script que je utilise est pas bon et que vous préférez un autre script pour ce genre de tâche, s'il vous plaît partager avec moi. Il ne doit pas être un script jQuery, mais il aide si elle est jQuery.
La solution
Je suppose que vous seriez mieux de ne pas réimplémentant cette chose.
Il existe déjà un plugin jQuery vraiment agréable pour cette fonctionnalité (avec le soutien i18n aussi)
Timeago est un plugin jQuery qui fait il est facile de soutenir automatiquement la mise à jour horodatages floue (Par exemple « il y a 4 minutes » ou « environ 1 jour il y a » ou "2 ans")
P.S .: ne pas oublier de mettre jQuery.timeago.settings.allowFuture = true;
dates pour permettre à l'avenir
Si vous avez besoin d'une sorte de « callback » vous pouvez faire deux choses.
- En supposant que vous ne soutenu anglais (pas i18n), utilisez simplement
setInterval
qui chaque 20-25 secondes vérifie si la chaîne définie par jQuery timeago est « il y a 15 minutes », puis faire tout -
HackAdapter le code du plug-in et vous accrocher dans le par exemple méthode$timeago.inWords
et faire tout ce que si le paramètredistanceMillis
est>=900000
(15 * 60 * 1000).