首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用PHP将一个月添加到特定的日期?

如何用PHP将一个月添加到特定的日期?
EN

Stack Overflow用户
提问于 2018-05-16 00:41:15
回答 2查看 56关注 0票数 1

我使用now()函数来获取日期。我试着添加一个月,有很多函数,比如:

代码语言:javascript
运行
复制
$today= date("Y-m-d");
$date1 = date('Y-m-d', strtotime($today, ' + 1 month'));

在将$date1加载到MySQL DB之后,但是当我在DB中看到插入的日期是0000-00-00时。这个月怎么加?

EN

回答 2

Stack Overflow用户

发布于 2018-05-16 00:42:29

你让事情变得更复杂了。

代码语言:javascript
运行
复制
$date1 = date('Y-m-d', strtotime(' + 1 month'));

Demo

如果您不向strtotime()传递日期和时间,它将假定为"now“。

否则,按照您调用它的方式,您应该会看到以下错误:

源警告: strtotime()要求参数2是整数,在/tmp/execpad-a8173d5d91cb/

-a8173d5d91cb中给出的字符串在行

这是因为strtotime()希望第二个参数是Unix时间戳,而您清楚地提供了一个字符串。与您的代码最接近的代码应该是

代码语言:javascript
运行
复制
$today= time();
$date1 = date('Y-m-d', strtotime(' + 1 month', $today));

Demo

如果日期仍然错误地进入数据库,那么您的日期代码之外就有问题了。

票数 1
EN

Stack Overflow用户

发布于 2018-05-16 01:10:38

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

您还可以使用MySQL的内置函数DATE_ADD()在MySQL中直接向日期添加月份,而不需要在PHP中进行计算:

代码语言:javascript
运行
复制
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);

例如,查询

代码语言:javascript
运行
复制
SELECT DATE_ADD('2018-05-15 12:34:56', INTERVAL 1 MONTH);

将返回结果:

代码语言:javascript
运行
复制
+---------------------------------------------------+
| DATE_ADD('2018-05-15 12:34:56', INTERVAL 1 MONTH) |
+---------------------------------------------------+
| 2018-06-15 12:34:56                               |
+---------------------------------------------------+
1 row in set (0.00 sec)

使用它,您还可以直接将日期值更新为提前一个月的日期:

代码语言:javascript
运行
复制
UPDATE table_name SET column_name = DATE_ADD(NOW(), INTERVAL 1 MONTH)
WHERE id = your_id;

(根据需要更换table_name、column_name、id、your_id )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50355322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档