将字符串转换为PHP中的日期时间

问题描述:

我需要将使用PHP从HTML表单输入的日期时间值插入到MySQL数据库中。不过,我收到了不正确的时间值误差每次我试图执行下面的代码,将字符串转换为PHP中的日期时间

$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')"; 

我一直在使用上面的每个不同的技术来进行转换尝试,但它不工作。这是如何任何想法可以插入

+0

什么是你所得到的确切的错误?你会发布'describe tblroster'的输出吗? ? – walrii 2012-07-22 08:32:21

+0

日期格式应为YYYY-MM-DD HH:MM:SS – BenOfTheNorth 2012-07-22 08:33:00

+0

行1中列'rosterstartdate'的日期时间值错误:'1341926751' – Yoosuf 2012-07-22 08:33:01

试试这个:

$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)); 

这样你就可以只引用您的查询字符串的两个变量。

你并不需要格式化它,如果你有一个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')";