2009-06-10 8 views

Répondre

2
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)

+1

N'oubliez pas tous les endroits qui utilisent des décalages de 15, 30 et 45 minutes ainsi – Glen

+0

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

+0

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

0

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é

3

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

+0

+1 pour les utilisateurs de Katmandou! –

+0

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

+0

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. –

Questions connexes