将PHP日期插入MySQL数据库


Insert PHP date into MySQL database

我需要将表单中的日期字段插入到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。

MySQL希望日期采用YYYY-MM-DD格式。你有YYYY-DD-MM.改变:

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

自:

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

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

假设 Apache 的服务器比 MySQL 早 2 小时。如果是 1 月 22 日凌晨 1 点(在 Apache 中),则使用 date('Ỹ-m-d') 将返回 2015-01-22,CURDATE()(MySQL 当前日期的函数)将返回 2015-01-21。

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

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

另一个是插入 CURDATE():

$ref_date = 'CURDATE()';