【发布时间】:2010-11-22 16:13:46
【问题描述】:
我的服务器在美国,我在英国。
我使用默认的 CURRENT_TIMESTAMP 在 mysql 服务器上存储时间戳值。因此,当条目被添加到我的表时,它们会被标记为当前时间。这是服务器时间(美国),然后被mysql转换为UTC。
当我检索值时,我希望它们显示在当前时区(英国)中。所以在我的 PHP 中,我使用以下函数来设置当前时区:
mysql_query("SET time_zone = timezone;");
这似乎起作用,因为当我要求 mysql 回显服务器和会话时区时,我分别得到 SYSTEM 和 -08:00。
但是,当我稍后在同一个 PHP 脚本中打印我的时间戳值时,它们会以美国时间输出。
在 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>";
}
任何帮助将不胜感激!
【问题讨论】:
-
请显示一些代码,尤其是当您在 PHP 中打印时间戳值时
-
SET time_zone查询是在与获取时间戳的查询相同的请求期间进行的? -
我不这么认为...我现在已将其更改为:
-
$ratingresult = mysql_query("SET time_zone = timezone SELECT ID,DateTime,Name,Comment,Location,Rating FROM table1 WHERE Latitude$latdown AND Longitude $lngdown ORDER BY Rating DESC") 但这会返回错误
-
@Sam - 分成两个查询,或者使用 mysqli_multi_query