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.

Était-ce utile?

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)

jQuery timeago

  

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.

  1. 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
  2. Hack Adapter le code du plug-in et vous accrocher dans le par exemple méthode $timeago.inWords et faire tout ce que si le paramètre distanceMillis est >=900000 (15 * 60 * 1000).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top