我使用now()
函数来获取日期。我试图添加一个月有很多功能,如:
$today= date("Y-m-d");
$date1 = date('Y-m-d', strtotime($today, ' + 1 month'));
并在加载$date1
到MySQL DB之后,但是当我在DB中看到插入的日期是0000-00-00
时。
我该如何在这个月添加?
答案 0 :(得分:1)
你使这变得比它需要的更复杂。
$date1 = date('Y-m-d', strtotime(' + 1 month'));
如果您没有通过日期和时间, strtotime()
将假设“现在”。
否则,你调用它的方式,你应该看到这个错误:
警告:strtotime()期望参数2为整数,字符串在/ tmp / execpad -a8173d5d91cb / source-a8173d5d91cb中给出
这是因为strtotime()
期望第二个参数是Unix时间戳,你清楚地提供了一个字符串。壁橱的近似代码将是
$today= time();
$date1 = date('Y-m-d', strtotime(' + 1 month', $today));
如果日期仍未正确进入数据库,那么您的日期代码之外就会出现问题。
答案 1 :(得分:0)
将MySQL中的日期调高为0000-00-00 00:00:00
通常表示您尝试存储在数据库中的日期没有有效格式/未被MySQL识别为日期。也许这是插入或更新日期值的方式有问题吗?
您还可以直接在MySQL中添加一个月的日期,而无需使用MySQL的内置函数DATE_ADD()在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 。)