使用 php 将时间和日期添加到 mysql 中的日期时间?

adding time and date to datetime in mysql using php?

我正在尝试使用 PHP.

将日期和时间添加到 mysql 数据库中的日期时间字段

我在 mysql 数据库中的日期时间是这样存储的:

2015-01-20 05:10:17

我尝试像这样向该字段添加 5 天:

$Date = date();
$end_date = date("Y, n, j, G, i, s", strtotime($Date. ' + 5 days'));

UPDATE myTable SET end_date='$end_date' WHERE randKey='$id'

但是当我查看数据库的更新时,我看到 end_date 字段是这样的:

0000-00-00 00:00:00

这意味着它已更新,但由于某种原因所有内容都已设置为 0!

有人可以就此问题提出建议吗?

提前致谢。

检查这个:

$end_date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s"). ' + 5 days'));

MySql 以 YYYY-MM-DD HH:MM:SS 格式存储日期时间。

与其尝试将五天添加到一个字符串中的当前日期,不如使用 strtotime 的两个参数会容易得多,如下所示:

$Date = date();
$end_date = date("Y, n, j, G, i, s", strtotime('+5 days', $Date));

第二个参数指定"current"时间是多少;即,(开始位置)+5 天的休息日的基础。未指定时,默认为 time().

首先,您提供的代码不会将字段值增加 5 天,而是将今天的日期增加 5 天。看,如果您的字段包含 2015-01-01 并且如您所写,您想向该字段添加 5 天,则不应在 PHP 中向 date() 添加五天,因为它将是 2015- 01-25 而不是 2015-01-06。因此,如果您想向字段值添加 5 天,请使用:

UPDATE myTable SET end_date=DATE_ADD(end_date, INTERVAL 5 DAY) WHERE randKey='$id';

但是如果你想在今天之后添加五天,使用这个:

UPDATE myTable SET end_date=DATE_ADD(CURDATE(), INTERVAL 5 DAY) WHERE randKey='$id';

如果您还关心时间,而不仅仅是日期,请使用 NOW() 而不是 CURDATE()

希望对您有所帮助。