在PHP中将String转换为DateTime

时间:2012-07-22 08:26:57

标签: php mysql datetime

我需要使用PHP将从HTML表单输入的日期时间值插入MySQL数据库。但是,每次尝试执行下面的代码时,我都会收到错误的日期时间值错误

$rosterstartdate=$_GET['rosterstartdate'];
$rosterenddate=$_GET['rosterenddate'];

//$date = date_create_from_format('d/M/Y:H:i:s', $rosterstartdate);
//$date->getTimestamp();
//echo $date;

$date = strtotime($rosterstartdate);
echo date('d/M/Y H:i:s', $date);

    // echo DATE_FORMAT($rosterstartdate,"%Y%m%d %H%i%s");

    $con=mysql_connect("localhost","root","");  
    if($con==true){
        mysql_select_db("attendance_db",$con);
        $query="insert into tblroster values(LAST_INSERT_ID(),'$rosterteam','$rostershifts','$date','$rosterenddate')";

我已尝试使用上述各种技术进行转换但不起作用。关于如何插入的任何想法

2 个答案:

答案 0 :(得分:2)

试试这个:

$date = date('Y-m-d H:i:s', $date);

使用该代码格式化日期,而不是回显它。

然而,看起来你真正想要的是这个:

$rosterstartdate = date('Y-m-d H:i:s', strtotime($rosterstartdate));
$rosterenddate = date('Y-m-d H:i:s', strtotime($rosterenddate));

这样您就可以在查询字符串中引用这两个变量。

答案 1 :(得分:0)

如果您使用unixtime FROM_UNIXTIME,则无需格式化 将您的查询更改为

    $rosterstartdate=$_GET['rosterstartdate'];
$rosterenddate=$_GET['rosterenddate'];

//$date = date_create_from_format('d/M/Y:H:i:s', $rosterstartdate);
//$date->getTimestamp();
//echo $date;

$date = strtotime($rosterstartdate);

    $con=mysql_connect("localhost","root","");  
    if($con==true){
        mysql_select_db("attendance_db",$con);
        $query="insert into tblroster values(LAST_INSERT_ID(),'$rosterteam','$rostershifts',FROM_UNIXTIME($date),'$rosterenddate')";