我使用now()
函数来获取日期。我试着添加一个月,有很多函数,比如:
$today= date("Y-m-d");
$date1 = date('Y-m-d', strtotime($today, ' + 1 month'));
在将$date1
加载到MySQL DB之后,但是当我在DB中看到插入的日期是0000-00-00
时。这个月怎么加?
发布于 2018-05-16 00:42:29
你让事情变得更复杂了。
$date1 = date('Y-m-d', strtotime(' + 1 month'));
如果您不向strtotime()
传递日期和时间,它将假定为"now“。
否则,按照您调用它的方式,您应该会看到以下错误:
源警告: strtotime()要求参数2是整数,在/tmp/execpad-a8173d5d91cb/
-a8173d5d91cb中给出的字符串在行
这是因为strtotime()
希望第二个参数是Unix时间戳,而您清楚地提供了一个字符串。与您的代码最接近的代码应该是
$today= time();
$date1 = date('Y-m-d', strtotime(' + 1 month', $today));
如果日期仍然错误地进入数据库,那么您的日期代码之外就有问题了。
发布于 2018-05-16 01:10:38
如果MySQL中的日期显示为0000-00-00 00:00:00
,则通常表示您尝试存储在数据库中的日期的格式无效/ MySQL未将其识别为日期。也许是插入或更新日期值的方式有问题?
您还可以使用MySQL的内置函数DATE_ADD()在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;
(根据需要更换table_name、column_name、id、your_id )
https://stackoverflow.com/questions/50355322
复制相似问题