我有一个表“ 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以获取完整的“时间”列
谢谢。
答案 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使用DateTime
和DateTimezone