更改表格整列的时区

时间:2018-08-24 10:10:01

标签: php mysql

我有一个表“ temp”,其中“温度”和“时间”为两列。当我输入温度时,“时间”会自动打印为“时间戳”,默认为“ CURRENT_TIMESTAMP”。我在图中显示了PHP代码的输出。现在,我在IST要求的UTC区域获得时间。

$query = "SELECT * FROM temp;
while($row = mysqli_fetch_array($result))
{
$chart_data .= "{ Time:'".$row["Time"]."', 
Temperature:".$row["Temperature"]."}, ";
}

请指导如何将UTC的时间戳更改为IST以获取完整的“时间”列

谢谢。

2 个答案:

答案 0 :(得分:1)

在保存$ chart_data的同时尝试将date_timezone_set用于$ row [“ Time”]

date_timezone_set($date, timezone_open('America/Los_Angeles'));
echo date_format($date, 'Y-m-d H:i:sP');

您可以在date_timezone_set中指定所需的时区。

或者使用更流行的OOP界面:

// The reference timezone
$date = new DateTime($row['Time'], new DateTimeZone('UTC'));

// Changing the timezone
$date->setTimezone(new DateTimezone('America/Los_Angeles'));

// Output
echo $date->format($date, 'Y-m-d H:i:sP');

答案 1 :(得分:1)

替代... TIMESTAMP字段已识别时区。

可以简单地告诉mysql为您转换时间:

SET time_zone = 'Asia/Kolkata';

如果在查询之前运行此命令,则还应获得正确的时间。我将其添加为一个选项,但实际上我不建议这样做。最好将您的MySQL连接保持在UTC并让PHP使用DateTimeDateTimezone

处理转换。