The DateTime Not SavedTo Моя база данных, превращена в 0000-00-00 00:00:00

0

У меня проблема с моей командой PDO. Данные, введенные в базу данных, особенно для DATETIME, не работают хорошо, никаких данных не вставлено.

Вот моя таблица базы данных Скриншот:

Структура базы данных

Введенные неверные данные

Вот мой код

 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{

Спасибо большое за вашу помощь. :)

Теги:
pdo

2 ответа

2

Используя strtotime(), вы получите результат как strtotime() Unix. Но столбец datetime требуется в Ymd 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-часового формата

  • 0
    Спасибо, сэр, все решено и дата внесена в базу данных. Но когда я хочу показать его на Моей странице, он все равно отображается 1970-01-01 00:33:38 .. Вот код echo '<td> <span class = "time" style = "display: none;" > '. $ row [' depo_date '].' </ span> '. date ("Гм H: i: s", $ row [' depo_date ']).' </ td> ';
  • 0
    Да! Это выводит на экран то, что уже сохранено в базе данных. Попробуйте эту date('Ymd H:i:s', strtotime($row['depo_date'])); Измените Ymd H: i: s на любой формат, который вам нравится, например: Ymd или H:i:s или dmY .
Показать ещё 2 комментария
-1

Формат даты и времени неверен. Это должно быть 'Ymd 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

  • 0
    Спасибо, сэр, все решено и дата внесена в базу данных. Но когда я хочу показать его на Моей странице, он все еще отображается 1970-01-01 00:33:38 .. Пожалуйста, проверьте мой ответ внизу страницы .. Я показал код там. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню