2013-01-19 7 views
0

J'ai un site Web où de nombreux utilisateurs viennent de différents pays. Les utilisateurs peuvent planifier une tâche en fonction de leur fuseau horaire. Maintenant, il y a un cron qui s'exécute sur le serveur après chaque min, le cron exécute un script qui vérifie s'il y a une tâche planifiée de n'importe quel utilisateur et si c'est le cas, il fait le nécessaire.Gestion des fuseaux horaires pour différents utilisateurs

Depuis que mon serveur est basé aux États-Unis, le script exécuté par le cron considère le fuseau horaire des États-Unis. Que dois-je faire dans mon script pour exécuter la tâche de l'utilisateur en fonction du fuseau horaire de l'utilisateur au lieu du fuseau horaire du serveur?

Merci à l'avance pour des idées

+0

langue? serait utile –

Répondre

0
  1. Lookup fuseau horaire de l'utilisateur.

  2. Calcule l'heure actuelle dans le fuseau horaire de l'utilisateur.

  3. Pour chaque travail, recherchez la dernière fois qu'il a été exécuté et calculez la prochaine fois qu'il doit s'exécuter.

  4. Pour tout travail dont la prochaine exécution est maintenant ou dans le passé, exécutez ce travail et mettez à jour l'enregistrement de la dernière exécution de chaque travail.

0

J'ai fait quelque chose de similaire sur l'iPhone il y a quelques mois.

Ma solution était de capturer l'heure comme une chaîne. Donc, si l'utilisateur a sélectionné 8 heures, je voudrais juste capturer 08h00 et leur fuseau horaire, par exemple. Europe/Londres.

Toutes les 5 minutes environ sur mon serveur, je pourrais alors convertir cette heure 08:00 en heure UTC en fonction du fuseau horaire. Si ce temps était "présent", je procéderais à une vérification de l'état de transport de l'utilisateur et émettrait des alertes.

Pour m'aider avec les TimeZones, j'ai utilisé NodaTime. http://noda-time.blogspot.co.uk/

Questions connexes