如何在 PHP 中更改 MySQLi 时区

问题描述 投票:0回答:0

我不知道如何更改报告的时间。我正在使用 PHP 和 MySQLi。我的主机 SiteGround 的 MySQLi 系统记录的时间与我所在时区的时间不同,相差 +2 小时。他们说这是无法改变的,所以我需要以某种方式处理这个问题。

这是我的情况的代码:

  1. 我创建了一个表:

     $sql = "CREATE TABLE InvoiceList (
     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
     invoice VARCHAR(30) NOT NULL,
     reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
     )";
    
  2. 我在其中插入了值(我唯一感兴趣的变量 $x_Invoice_Num 是订单的发票号码):

    $sql = "INSERT INTO InvoiceList (invoice)
     VALUES ('$x_Invoice_Num')";
    
     if ($conn->query($sql) === TRUE) {
       echo "";
     } else {
       echo "Error: " . $sql . "<br>" . $conn->error;
     }
    
  3. 这是显示值的代码:

    $sql = "SELECT id, invoice, reg_date FROM InvoiceList";
    $result = $conn->query($sql);
    
     if ($result->num_rows > 0) {
       // output data of each row
       while($row = $result->fetch_assoc()) {
         echo "id: " . $row["id"]. " - Invoice: " . $row["invoice"]. " - Time: " . $row["reg_date"]. " <br>";
       }
     } else {
       echo "0 results";
     }   
    

问题:显示的时间相差 +2 小时。如何减去 2 小时以显示我的时区?我试图理解和使用 date_sub() 但我所有的尝试都失败了。如果可以的话请帮忙。

我尝试使用

date_sub()
但我无法将它放入代码中而不出现语法错误。所有在线教程似乎都只显示固定时间的示例,而没有介绍它可以在哪里用作函数。例如,典型示例如下所示:

SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result; 

我什至尝试将该行放入我的代码中,但它没有解析。

php mysql mysqli
© www.soinside.com 2019 - 2024. All rights reserved.