将PHP日期插入MySQL数据库

时间:2015-01-22 16:40:00

标签: php mysql date

我需要将表单中的日期字段插入到mysql数据库中。如果用户未输入日期,则应使用当前日期。我的代码是:

if ($_POST[date]==0)
    {$ref_date=date('Y-d-m');}
    else {$ref_date=$_POST[date];}

$L="insert into referral (ID,patient, Doctor,Date) values (default,$pat,$doc,'$ref_date')";
        mysql_query($L) or die(mysql_error());

当我在表单中提交日期时,它工作正常,但当我将该字段留空时,它输入0000-00-00。

2 个答案:

答案 0 :(得分:3)

MySQL期望日期为YYYY-MM-DD格式。你有YYYY-DD-MM。变化:

$ref_date=date('Y-d-m');

为:

$ref_date=date('Y-m-d');

答案 1 :(得分:0)

但是,您应该注意,与MySQL服务器相比,Apache(或您正在使用的任何php服务器)可能具有不同的时间/时区。

让我们说Apache的服务器比MySQL早2h。如果它是1月22日上午1点(在Apache中),则使用日期('Ỹ-m-d')将返回2015-01-22和CURDATE()(MySQL当前日期&#) 39; s函数)将返回2015-01-21。

因此,有两种可能的解决方案。一个是John Conde的解决方案:

$ref_date = date('Y-d-m');

另一个是插入CURDATE():

$ref_date = 'CURDATE()';