2015-10-04 83 views
0

我想插入两个日期时间到MySQL。不能插入字符串或日期时间对象到mysql

$ taskcompdate是用户写入的字符串,需要转换为日期时间对象并使用“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应该是格式并将字符串转换为要输入到数据库的格式。据推测,但我只是在网上找到了一些解决方案,并尝试了我,但没有奏效。 –

回答

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

Tested,就像一个魅力。谢谢! –

相关问题