DateTime Not SavedTo我的数据库,转到00:00:00

时间:2018-04-07 00:08:39

标签: php mysql pdo

我的PDO命令有问题 插入数据库的数据尤其是DATETIME的数据效果不佳, 没有插入数据。

这是我的数据库表截图:

Database Structure

The Wrong Data Inserted

这是我的代码

 public function NewDepo($array){

    if(isset($array)){
    try
    {
        $stmt = $this->conn->prepare("INSERT INTO `depo` (`depo_id`, `depo_trx`, `depo_address`, `depo_total`, `depo_status`, `depo_date`, `depo_end`) VALUES (NULL, :trx, :add, :total, 1, :tanggal, :ending)");
        $tanggal = time();
        $ending = strtotime('+1 day', $tanggal);                                     
        $stmt->bindparam(":trx", $array['trx']); 
        $stmt->bindparam(":add", $array['address']); 
        $stmt->bindparam(":total", $array['total']); 
        $stmt->bindparam(":tanggal", $tanggal); 
        $stmt->bindparam(":ending", $ending); 
        $stmt->execute();   
        return $stmt;   
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
    return true;
    }else{
        return false;
    }   
}
public function NewPayout($array){

    if(isset($array)){
    try
    {
        $stmt = $this->conn->prepare("INSERT INTO `depo` (`depo_id`, `depo_trx`, `depo_address`, `depo_total`, `depo_status`, `depo_date`, `depo_end`) VALUES (NULL, :trx, :add, :total, 2, :tanggal, :ending)");
        $tanggal = time();
        $ending = strtotime('+1 day', $tanggal);                                           
        $stmt->bindparam(":trx", $array['trx']); 
        $stmt->bindparam(":add", $array['address']); 
        $stmt->bindparam(":total", $array['total']); 
        $stmt->bindparam(":tanggal", $tanggal); 
        $stmt->bindparam(":ending", $ending); 
        $stmt->execute();   
        return $stmt;   
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
    return true;
    }else{

非常感谢你的帮助。 :)

2 个答案:

答案 0 :(得分:2)

通过使用strtotime(),它将输出为Unix时间戳。但datetime列需要采用Y-m-d H:i:s格式

所以试试这个,

$tanggal = date('Y-m-d H:i:s'); // Will give you 2018-04-07 13:00:00
$ending = date('Y-m-d H:i:s', strtotime('+1 day', strtotime($tanggal))); // Will give you 2018-04-08 13:00:00

注意:

  • ' H' 24小时格式

  • ' H' 12小时格式

答案 1 :(得分:-1)

您的日期时间格式不正确。它应该是'Y-m-d H:i:s'。试试这个:

<?php

// incorrect
$tanggal = time();
$ending = strtotime('+1 day', $tanggal);
var_dump([$tanggal, $ending]);

// correct
$tanggal = date('Y-m-d H:i:s');
$ending = date('Y-m-d H:i:s', strtotime('+1 day', strtotime($tanggal)));
var_dump([$tanggal, $ending]);

http://schoolaf.com/4openRe7Az