Je travaille sur un travail cron qui envoie des rapports à des centaines d'utilisateurs à travers le monde. Le cron devrait envoyer un email à tous mes utilisateurs à exactement 12h du matin selon leur fuseau horaire. Merci à l'avanceComment déterminez-vous quel fuseau horaire est à 12h maintenant?
Répondre
Your Time | Timezone You Need
-----------------------------
12:00am 0
1:00am -1
2:00am -2
3:00am -3
4:00am -4
5:00am -5
...
12:00pm +/- 12
1:00pm +11
2:00pm +10
3:00pm +9
...
------------------------------
Vous devriez être en mesure de voir le modèle commencent à se développer ici. Le motif devrait finir par être quelque chose comme Différence fuseau horaire = (12-votre heure actuelle)
Calculez ce fuseau horaire que vous êtes:
time("O");
Calculez ce que le temps est où vous êtes:
time("H:i")
peu de magie pour travailler si vous devriez ajouterez ou en soustrayant le temps pour arriver à minuit, puis ajoutez ou soustrayez la différence entre votre heure et minuit pour obtenir la différence de fuseau horaire, et l'ajouter à votre propre fuseau horaire. Voila.
Edit: Voir la réponse de @ TheTXI pour la « magie » impliqué
Vous avez besoin d'une liste dont tous les fuseau horaire où vos utilisateurs sont en + si elles utilisent l'heure d'été ou non.
Pour une liste complète des fuseaux horaires voir ce wikipedia article
Puis toutes les 15 minutes, vous devez avoir Cron exécuter un script à tous les utilisateurs dans le fuseau horaire actuel offset.
par exemple. à UTC + 5h45 envoyer vos mails à tous les utilisateurs dans le « Katmandou » fuseau horaire
+1 pour les utilisateurs de Katmandou! –
pas seulement Katmandou, Téhéran est +3h30, Adélaïde et Darwin en Australie sont +9h30, Delhi et Mumbai sont +5h30. Fondamentalement, les fuseaux horaires sont généralement par tranches de 15 minutes. En outre, fondamentalement, la gestion du fuseau horaire est nulle! – Glen
Ouais, je me souviens d'un leader d'un pays ou d'un autre décidant aléatoirement de changer de fuseau horaire l'année dernière par diktat - je ne sais pas à quel point ce changement a été pris au sérieux par les gens qui se soucient des fuseaux horaires! En d'autres termes, je ne sais pas où il est dit que les fuseaux horaires doivent être sur des limites de 15 minutes. –
- 1. Comment tester un fuseau horaire?
- 2. Fuseau horaire en C#?
- 3. Fuseau horaire Fonctions Aide
- 4. Comment définir le fuseau horaire dans Trac?
- 5. Datetime Mysql avec Fuseau horaire
- 6. Comment savoir si un fuseau horaire observe l'heure d'été à n'importe quel moment de l'année?
- 7. Dates sans composant de fuseau horaire ou de fuseau horaire dans Java/MySQL
- 8. Comment définir un fuseau horaire client identique à celui de la fenêtre Fuseau horaire du serveur .NET C#
- 9. Réglage du fuseau horaire du mode org
- 10. Fixation du fuseau horaire sur Solaris 10
- 11. Fuseau horaire de l'application Web Problème
- 12. Modification du fuseau horaire en PHP
- 13. Obtenir le fuseau horaire de DateTime
- 14. Problème de fuseau horaire dans Java/Linux
- 15. J2ME Obtenir le fuseau horaire actuel
- 16. Comment afficher une date avec un fuseau horaire personnalisé?
- 17. Javascript Différence entre fuseau horaire et GMT
- 18. fuseau horaire de réglage en Python
- 19. Convertir temps d'un fuseau horaire à l'autre dans Rails
- 20. Comment obtenir le fuseau horaire des propriétés dans CultureInfo
- 21. Comment convertir l'heure UTC en heure dans n'importe quel autre fuseau horaire en C#
- 22. Covert NSString à NSDate dans un fuseau horaire différent
- 23. Comment imprimer un datetime Python dans le fuseau horaire local?
- 24. Comment obtenir la valeur du fuseau horaire dans SSRS
- 25. Comment afficher DateTime avec un fuseau horaire abrégé?
- 26. .NET 2.0 DateTime.ToString() conversion à un fuseau horaire différent
- 27. comment afficher l'heure actuelle avec fuseau horaire sélectionné?
- 28. Forçage du fuseau horaire "+0000" pour RFC2822 fois dans Ruby
- 29. ruby on rails conversion au fuseau horaire des utilisateurs
- 30. Changement de fuseau horaire sur un projet Django existant
N'oubliez pas tous les endroits qui utilisent des décalages de 15, 30 et 45 minutes ainsi – Glen
Merci, vous avez aidé à penser dans une autre perspective. Je pense au lieu du travail mathématique qui est très confus. Je vais juste coder en dur les instructions pour chaque fuseau horaire pour chaque heure de mon fuseau horaire. – drikoda
Bon point Glen. Et drikoda, je ne préconisais pas vraiment d'entrer et de tout coder en dur, mais donné une liste suffisamment grande et complète ou une table de base de données (y compris la décomposer en incréments de 15 minutes au lieu de l'heure comme je l'ai fait), mais si cela finit par être la meilleure façon de le faire sans vouloir vous tuer, alors qu'il en soit ainsi. – TheTXI