Mon serveur est aux États-Unis et je suis au Royaume-Uni.problème de fuseau horaire mysql
Je stocke des valeurs d'horodatage sur un serveur mysql en utilisant le paramètre CURRENT_TIMESTAMP par défaut. Ainsi, lorsque des entrées sont ajoutées à ma table, elles sont marquées avec l'heure actuelle. C'est l'heure du serveur (US), puis convertie en UTC par mysql.
Lorsque je récupère les valeurs, je veux les afficher dans le fuseau horaire actuel (UK). Donc, dans mon PHP utiliser la fonction suivante pour définir le fuseau horaire actuel:
mysql_query("SET time_zone = timezone;");
Cela semble fonctionner comme quand je demande mysql faire écho timezones serveur et session, je reçois SYSTEM et -08: 00 respectivement. Cependant, lorsque j'imprimerai plus tard mes valeurs d'horodatage dans le même script PHP, elles sont sorties en temps US.
Obtenir des résultats en PHP:
$result = mysql_query("SELECT ID,DateTime,Name,Comment,Location,Rating FROM table1 WHERE Latitude<$latup AND Latitude>$latdown AND Longitude<$lngup AND Longitude>$lngdown ORDER BY DateTime DESC")
while(($row = mysql_fetch_array($ratingresult)) && ($i++ < 1)) {
echo "<tr><td>";
echo $row['DateTime'];
echo "</td><td>";
echo $row['Name'];
echo "</td><td>";
echo $row['Comment'];
echo "</td><td>";
echo $row['Location'];
echo "</td><td>";
echo $row['Rating'];
echo "</td><td>";
rate($row, $lat, $lng);
echo "</td></tr>";
}
Toute aide serait vraiment apprécié!
S'il vous plaît montrer un peu de code, en particulier lorsque vous imprimez les valeurs d'horodatage en PHP –
Et la 'requête SET time_zone' est faite au cours de la même demande que la requête qui récupère l'horodatage? –
Je ne pense pas ...Je l'ai maintenant changé pour: – Sam