2015-10-04 1 views
0

Я хочу вставить два datetime в mysql.Невозможно вставить объекты string или datetime в mysql

$ taskcompdate - это пользовательская строка, которая должна быть преобразована в объект datetime и отформатирована в формате «d/m/y».

Второй, $ datenow - просто сейчас время.

Запрос вставки работает, но все даты во всех отчетах отображаются как 0000-00-00 00:00:00

Я перепробовал все возможные пути я нашел, но никто не работает. Что я делаю не так?

<?php 
       $conn = mysqli_connect("127.0.0.1", "root", "", "todo_list"); 

       $taskname = $_POST["taskname"]; 
       $taskcompdate = $_POST["taskcompdate"]; 
       $datenow = date("H:i:s d/m/y"); 

       $insert_date1 = date('d/m/y', strtotime($taskcompdate)); 
       $insert_date2 = date('H:i:s d/m/y', strtotime($datenow)); 


       $sql_main = "INSERT INTO task_main (task, complete_date, added_date) VALUES ('$taskname', '$insert_date1', '$insert_date2')"; 
       $result = mysqli_query($conn, $sql_main); 

if ($result) { 
    echo 'success'; 
} else { 
    echo 'failure' . mysqli_error($conn); 
} 
      ?> 
+0

Вы можете сообщить мне, что значение '$ insert_date1' и' $ insert_date2'. – sandeepsure

+0

$ insert_date1/2 должен быть форматированием и преобразованием строк в формат, который должен быть введен в db. предположительно, но я только что нашел некоторые решения в Интернете и попробовал это для меня, но не работал. –

ответ

3

Ваши даты указаны в недопустимом формате для типов даты и даты и времени MySQL. Они должны быть в формате YYYY-MM-DD HH: MM :: SS.

$insert_date1 = date_format($taskcompdate, "Y-m-d"); 
$insert_date2 = date('Y-m-d H:i:s', strtotime($datenow)); 
+0

Отлично, спасибо - это работает. Могу ли я использовать тот же формат, который вы указали только для даты? Потому что мне нужно, чтобы первая была просто датой, а вторая - датой? –

+0

Да, код, который я предоставил, делает именно то, что –

+0

Протестировано, работает как шарм. Благодаря! –

Смежные вопросы