如何使用PHP将月份添加到特定日期?

如何使用PHP将月份添加到特定日期?,php,mysql,date,Php,Mysql,Date,我使用now()函数获取日期。我尝试添加一个包含许多功能的月份,如: $today= date("Y-m-d"); $date1 = date('Y-m-d', strtotime($today, ' + 1 month')); 在将$date1加载到MySQL数据库之后,但是当我在数据库中看到插入的日期是0000-00-00。 我如何添加这个月的数据?您使这个问题变得比需要的更复杂 $date1 = date('Y-m-d', strtotime(' + 1 month')); stro

我使用
now()
函数获取日期。我尝试添加一个包含许多功能的月份,如:

$today= date("Y-m-d");
$date1 = date('Y-m-d', strtotime($today, ' + 1 month'));
在将
$date1
加载到MySQL数据库之后,但是当我在数据库中看到插入的日期是
0000-00-00

我如何添加这个月的数据?

您使这个问题变得比需要的更复杂

$date1 = date('Y-m-d', strtotime(' + 1 month'));

strotime()
如果不向其传递日期和时间,将假定为“现在”

否则,按照您所称的方式,您应该会看到以下错误:

警告:strotime()要求参数2为整数,字符串在第行/tmp/execpad-a8173d5d91cb/source-a8173d5d91cb中给出

这是因为
strotime()
希望第二个参数是Unix时间戳,而您显然提供了一个字符串。与您的代码最接近的是

$today= time();
$date1 = date('Y-m-d', strtotime(' + 1 month', $today));


如果日期仍然不正确地进入数据库,则您的日期代码之外存在问题。

在MySQL中的日期显示为
0000-00-00 00:00:00
通常表示您尝试存储在数据库中的日期没有有效的格式/MySQL未将其识别为日期。可能是插入或更新日期值的方式有问题

您也可以使用MySQL的内置函数,在MySQL中直接向日期添加一个月,而无需在PHP中进行计算:

SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);
例如,查询

SELECT DATE_ADD('2018-05-15 12:34:56', INTERVAL 1 MONTH);
将返回结果:

+---------------------------------------------------+
| DATE_ADD('2018-05-15 12:34:56', INTERVAL 1 MONTH) |
+---------------------------------------------------+
| 2018-06-15 12:34:56                               |
+---------------------------------------------------+
1 row in set (0.00 sec)
使用该选项,还可以直接将日期值更新为提前一个月的日期:

UPDATE table_name SET column_name = DATE_ADD(NOW(), INTERVAL 1 MONTH)
WHERE id = your_id;
(根据需要替换表名、列名、id和您的id。)