2009-11-29 2 views
9

J'ajoute la date et l'heure à ma base de données en utilisant le code suivant:Pourquoi mon heure() est-elle désactivée d'une heure en php?

$current_date_time = time(); 
echo date('n/j/y g:ia',$current_date_time); 

Il apparaît comme 29/11/09 00:38 quand il devrait être 29/11/09 11:38

L'heure est avancée d'une heure. Je suis dans le fuseau horaire du Pacifique et mon fournisseur d'hébergement est dans l'Utah, le fuseau horaire des montagnes. Serait-ce la raison pour laquelle il est en avance d'une heure?

Comment résoudre ce problème? Dois-je supprimer une heure de l'heure? Si oui, comment je fais ça? Ou existe-t-il une autre façon de tenir compte des différences de fuseau horaire, de sorte qu'il se manifeste dans le fuseau horaire du Pacifique?

Répondre

21

Vous le résolvez en définissant le fuseau horaire explicitement dans vos scripts PHP. Vous pouvez le faire avec date_default_timezone_set():

date_default_timezone_set('America/Los_Angeles'); 

Voici le list of PHP supported timezones.

Vous pouvez également essayer un script de test appelant date_default_timezone_get() pour voir à quoi il correspond réellement pour vérifier que c'est effectivement le problème.

+0

Comment faire cela? – zeckdude

+0

Cool! Merci beaucoup! Bien que j'avais besoin de date_default_timezone_set ('America/Los_Angeles'); depuis que je suis dans le fuseau horaire du Pacifique. – zeckdude