【问题标题】:Why its not displaying current time zone?为什么它不显示当前时区?
【发布时间】:2017-10-13 05:59:21
【问题描述】:

我正在尝试在将印度时区传递给 mysql 数据库服务器的查询中添加参数。但是当我传递此查询时,它会在我的表中显示 0000-00-00 00:00:00。 我正在使用托管 php 我的管理数据库服务器。 请帮我解决这个问题。

<?php


include 'confi.php';

 date_default_timezone_set('Indian/Maldives');

    $email = isset($_POST['email']) ? mysqli_real_escape_string($conn,$_POST['email']) : "";
    $today = date("d/m/Y h:i:s A");

    $sql ="INSERT INTO `i_order` (`ID`, `email`,`date`) VALUES (NULL, '$email', '$today');"; 

    $qur = mysqli_query($conn,$sql);
    if($qur){
        $json = array("status" => 1, "msg" => "success!");
    }else{
        $json = array("status" => 0, "msg" => "error!");
    }

@mysqli_close($conn);

/* Output header */
    header('Content-type: application/json');
    echo json_encode($json);


?>

【问题讨论】:

  • 您的代码容易受到 SQL 注入的攻击。请学会使用prepared statements
  • 这可能是由 $today = date("d/m/Y h:i:s A"); 引起的,这是一个搅拌而不是时间戳
  • date_default_timezone_set('印度/马尔代夫') $today = date(m-d-Y);
  • 我试过了,但它不起作用

标签: php mysql sql mysqli phpmyadmin


【解决方案1】:
<?php 

 date_default_timezone_set('Indian/Maldives');
 //echo $today = date('m-d-Y h:i:s A');

?>

【讨论】:

  • 谁说的??你能解释一下为什么吗??
  • 解决这个问题的简单方法是试试看!
  • 澄清一下,我是说这种格式的日期不会存储到 MYSQL 表列中。我并不是说date() 不起作用
  • 您可能需要查看 STR_TO_DATE() actually does 的内容,它采用不合法的方式格式化日期,并根据格式错误的日期为 DATE 或 DATETIME 或 TIMESTAMP 生成合法的日期格式
  • 或阅读the accepted answer顶部黄色部分
【解决方案2】:

要将日期存储到 MySQL,它需要采用特定格式,即

YYYY-MM-DD HH:MM:SS

因此,如果您从

更改格式
$today = date("d/m/Y h:i:s A");

$today = date("Y-m-d h:i:s");

日期将正确存储。

如果您将 24 小时的时间存储到数据库,则 AM 和 PM 部分无关紧要,您可能会补充说,如果您向用户显示时间,当您从数据库中读回数据时

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
相关资源
最近更新 更多