2009-09-11 6 views
1

Je veux enregistrer l'heure locale de mon pays (Nouvelle-Zélande) dans ma base de données. J'utilise php mais je ne sais pas comment le faire.comment enregistrer l'heure locale actuelle dans la base de données

Veuillez me guider.

+2

quelle base de données utilisez-vous? est l'heure tout ce que vous voulez stocker? qu'est-ce que tu as jusqu'ici? –

+0

Un aperçu des autres questions de jazzrai pourrait être MySQL ou SQL Server 2005 –

Répondre

1

Ce

 date('O');

vous donnera la différence Heure de Greenwich (GMT) en heures pour le serveur Exemple: +0200

Vous devrez connaître le décalage GMT de votre propre fuseau horaire. Utilisez ces deux chiffres pour déterminer jusqu'où le serveur est devant vous ou derrière vous, puis utilisez strtotime() pour connaître l'heure actuelle.

Par exemple, si le serveur est de 2 heures à l'avance, vous vous utilisez

 date("Y-m-d H:i:s", strtotime("-2 hours"));

HTH

JG

0

Utilisez maintenant() ou sysdate() dans votre requête d'insertion:

insert into mytable set datetimefield=sysdate() 

Assurez-vous que le temps du serveur est synchronisé, et qu'il est dans le bon fuseau horaire. Sinon, vous devrez faire quelques trucs supplémentaires pour changer la date et l'heure.

Si le timing est essentiel, gardez cela à l'esprit:

MySQL 5.0.13, retourne SYSDATE() l'heure à laquelle il exécute. Ce diffère du comportement pour NOW(), qui renvoie une heure constante que indique l'heure à laquelle l'instruction a commencé à s'exécuter. (Dans un de routine ou un déclencheur stocké, NOW() retourne l'heure à laquelle la déclaration de routine ou le déclenchement a commencé à exécuter.)

0

Si vous utilisez champ d'horodatage et de base de données MySQL, vous pouvez simplement appeler CURRENT_TIMESTAMP. Je recommande de ne pas enregistrer les données temporelles en tant qu'horodatage unix car vous pouvez utiliser des fonctions spécifiques à la date sur les champs date/horodatage et en extraire un horodatage unix.

Questions connexes