计算2020-2-28下个月的时间规律,使用strtotime +1month后需要得到是2020-3-30

发布于 2022-09-12 01:16:23 字数 2812 浏览 16 评论 0

题目描述

选区_726.png
选区_727.png
选区_728.png

完整的对应时间

创建时间过期时间月数
2020-02-282020-03-301
2020-02-282020-04-292
2020-02-282020-05-303
2020-02-282020-06-294
2020-02-282020-07-295
2020-02-282020-08-296
2020-02-282020-09-287
2020-02-282020-10-298
2020-02-282020-11-289
2020-02-282020-12-2910
2020-02-282021-01-2811
2020-02-282021-02-2712
2020-02-282021-03-3013
2020-02-282021-04-2914
2020-02-282021-05-3015
2020-02-282021-06-2916
2020-02-282022-02-2724
2020-02-282023-02-2736
2020-02-282024-02-2748
2020-02-282025-02-2660

题目来源及自己的思路

上面是接口返回的时间,在接口上post请求+1,则会延迟一个月时间.得到过期时间
如果我用如下代码

echo date("Y-m-d",strtotime("+1 month",strtotime("2020-02-28")));

则显示

2020-03-28

如果加+2则显示

echo date("Y-m-d",strtotime("+2 month",strtotime("2020-02-28")));
2020-04-28

如果加+12则显示

echo date("Y-m-d",strtotime("+12 month",strtotime("2020-02-28")));
2021-02-28

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

如何才能实现如截图中返回的"过期时间",接口中计算的过期时间的规律又是什么

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怪异←思 2022-09-19 01:16:23

将创建时间转换为时间戳,将时间戳加一个月的秒数,再计算出日期

白昼 2022-09-19 01:16:23

先计算出每个自然月的天数,然后用起始时间加上天数

<?php
// 要加的月数
$month = 2;
$start = '2020-02-28';
$start = strtotime($start);
$month < 1 && $month = 1;
$days = 0;
for ($i = 1; $i <= $month; $i++) {
    $current = strtotime("first day of +${i}month", $start);
    $days += date('t', $current);
}

$end = strtotime("+$days days", $start);

echo date('Y-m-d', $end);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文