Comment savoir si un fuseau horaire observe l'heure d'été à tout moment de l'année?
En PHP, vous pouvez dire si une date donnée est au cours de l'heure d'été période de Temps en utilisant quelque chose comme ceci:
$isDST = date("I", $myDate); //1 or 0
Le problème est que cela ne vous raconte pas si sur ce point dans le temps est en heure d'été. Est-il un moyen fiable de vérifier si l'heure d'été est en vigueur à tout moment dans ce fuseau horaire?
Edit pour préciser:
- Brisbane, l'Australie n'a pas de changement d'heure, à tout moment de l'année. Toute l'année, c'est GMT+10.
- Sydney, en Australie, à partir d'octobre à Mars, quand il change de GMT+10 GMT+11.
Je me demandais si il y aurait une certaine méthode existante, ou une façon de mettre en œuvre une méthode qui fonctionne en tant que tel:
timezoneDoesDST('Australia/Brisbane'); //false
timezoneDoesDST('Australia/Sydney'); //true
Je ne comprends pas ce que vous voulez. Pourriez-vous reformuler la question en quelque sorte? Ou peut-être donner quelques exemples? Je ne sais pas.
Ces australiens sont bizarres (pas d'infraction signifié) en ce qui concerne l'heure d'été: bcl.com.au/times-daylight-saving.htm
Oui, il y a même un parti politique dont la seule politique est d'introduire l'heure d'été dans le Sud-Est du Queensland...
Ces australiens sont bizarres (pas d'infraction signifié) en ce qui concerne l'heure d'été: bcl.com.au/times-daylight-saving.htm
Oui, il y a même un parti politique dont la seule politique est d'introduire l'heure d'été dans le Sud-Est du Queensland...
OriginalL'auteur nickf | 2009-10-19
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une méthode qui fonctionne à l'aide de PHP DateTimezone classe (PHP 5.2+)
ou, si vous êtes en cours d'exécution de PHP 5.3+
La
getTransitions()
fonction vous donne des informations relatives à chaque fois que le décalage des changements de fuseau horaire. Cela inclut les données historiques (Brisbane a l'heure d'été en 1916.. qui l'aurait cru?), donc, cette fonction vérifie si il y a un décalage de changer dans l'avenir ou pas.OriginalL'auteur
Fait nickf méthode ne fonctionne pas pour moi, donc j'ai retravaillé un peu ...
même appel de fonction retourne true en 1 mois (Mars) j'espère que ça aide
Réponse parfaite, cheers
OriginalL'auteur
DateTimeZone::getTransitions pourrait aider.
Vous pourriez probablement aile:
Sinon, vous auriez besoin d'analyser le texte zoneinfo fichiers de données.
OriginalL'auteur
Je ne le pense pas, mais puisque presque tous les pays qui observent les modifications d'heure d'été de son temps pour une saison ou deux, vous pouvez essayer de tester les 4 points au cours d'une année donnée.
Par exemple, un test
date("I", $date)
pour 2009/01/01, 2009/04/01, 2009/07/01 et 2009/10/01. Si le fuseau horaire tombe dans l'heure d'été, alors au moins l'une de ces dates sera de retour 1.OriginalL'auteur
date doit être sur le client/serveur et le fuseau horaire pour qu'il fonctionne, et vous ne pouvez pas utiliser une plage avec date comme vous le faites avec getTransitions
OriginalL'auteur