为MySQLi插入查询设置TimeZone

时间:2018-08-14 07:31:33

标签: php mysql sql mysqli

我想为插入记录设置自定义时区。我已经尝试像下面那样设置时区,但是它没有设置我的自定义时区,而是设置了NOW()的服务器时区。我不明白为什么会这样。让我知道是否有人可以帮助我。

<?php
function storeMessage($contact, $message, $reply) {
require("includes/conf.php");
date_default_timezone_set("Asia/Kolkata");
$contact = '+'. $contact;
$stmt = $conn->prepare("INSERT INTO messages (number, message, reply, time) VALUES(?, ?, ?, NOW())");
$stmt->bind_param("sss", $contact, $message, $reply);
$stmt->execute();
$stmt->close();
 }
?>

谢谢

2 个答案:

答案 0 :(得分:2)

MySQL取决于托管在该服务器上的服务器所使用的时区,一种常见的解决方案是将您的时间以GMT格式存储,然后在您的代码上将适当的时区偏移量添加到记录中。

希望这会有所帮助。

答案 1 :(得分:0)

我已经按照下面的方法对其进行了管理,并且工作正常。

<?php
function storeMessage($contact, $message, $reply) {
require("includes/conf.php");
date_default_timezone_set("Asia/Kolkata");
$time = date('Y/m/d H:i:s', time());
echo $time;
$contact = '+'. $contact;
$stmt = $conn->prepare("INSERT INTO messages (number, message, reply, time) VALUES(?, ?, ?, ?)");
$stmt->bind_param("ssss", $contact, $message, $reply, $time);
$stmt->execute();
$stmt->close();
 }
?>

谢谢