将 php 日期转换为 mysql 格式
我在php中有一个日期字段,它正在使用下面的代码:
$date = mysql_real_escape_string($_POST['intake_date']);
如何将其转换为MySql格式0000-00-00以包含在数据库中。它是否沿着以下行:日期('Y-m-d' strtotime($date);。我问的原因是,我已经尝试了这种变体,但我似乎无法让它发挥作用。要么显示为1970年,要么显示其他一些变体。非常感谢
我在php中有一个日期字段,它正在使用下面的代码:
$date = mysql_real_escape_string($_POST['intake_date']);
如何将其转换为MySql格式0000-00-00以包含在数据库中。它是否沿着以下行:日期('Y-m-d' strtotime($date);。我问的原因是,我已经尝试了这种变体,但我似乎无法让它发挥作用。要么显示为1970年,要么显示其他一些变体。非常感谢
$date = mysql_real_escape_string($_POST['intake_date']);
1. 如果您的 MySQL 列是类型:DATE
$date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
2. 如果您的 MySQL 列是类型:DATETIME
$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));
你不必工作,因为它不能与破折号分隔符一起使用,它会尝试做减法。strototime()
-
更新,您的日期格式设置方式不能使用,请改用以下代码:strtotime()
$date = '02/07/2009 00:07:00';
$date = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '$3-$2-$1 $4', $date);
echo $date;
输出:
2009-07-02 00:07:00
这个网站有两个非常简单的解决方案 - 只需检查代码,我提供了描述,以防万一你想要它们 - 节省你的一些点击。
http://www.richardlord.net/blog/dates-in-php-and-mysql
1.一个常见的解决方案是将日期存储在DATETIME字段中,并使用PHP date()和strtotime()函数在PHP时间戳和MySQL DATETIMEs之间进行转换。这些方法将按如下方式使用-
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime( $mysqldate );
2.我们的第二个选择是让MySQL来做这项工作。MySQL具有可用于在访问数据库时转换数据的函数。UNIX_TIMESTAMP将从 DATETIME 转换为 PHP 时间戳,FROM_UNIXTIME将从 PHP 时间戳转换为 DATETIME。这些方法在 SQL 查询中使用。因此,我们使用这样的查询插入和更新日期 -
$query = "UPDATE table SET
datetimefield = FROM_UNIXTIME($phpdate)
WHERE...";
$query = "SELECT UNIX_TIMESTAMP(datetimefield)
FROM table WHERE...";