我是靠谱客的博主 文静彩虹,最近开发中收集的这篇文章主要介绍php strtotime 每月31日 加/减一个月的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

php strtotime日期处理存在一个问题,就是在每月31日或者在当月天数小于30天时,加减一个月得到的月份是不对的。
例如:

echo date('Y-m-d',strtotime("2022-10-31 +1 month"));//得到 2022-12-01

echo date('Y-m-d',strtotime("2022-10-31 -1 month"));//得到 2022-10-01

echo date('Y-m-d',strtotime("2023-01-31 +1 month"));//得到2023-03-03

echo date('Y-m-d',strtotime("2023-03-31 -1 month"));//得到2023-02-03

也就是在使用strtotime进行加减月计算时,如果天数小于30天或者大于30天就会出现跳月问题。

解决这一类的问题可以使用PHP  date新增的一系列修正短语, first day of 和 last day of,来解决这样的问题。

echo date("Y-m-d", strtotime("last day of +1 month", strtotime('2023-01-31')));//得到2023-02-28

echo date("Y-m-d", strtotime("last day of -1 month", strtotime('2023-03-31')));//得到2023-02-28

echo date("Y-m-d", strtotime("first day of +1 month", strtotime('2023-01-31')));//得到2023-02-01 

echo date("Y-m-d", strtotime("first day of -1 month", strtotime('2023-03-31')));//得到2023-02-01

这样就能解决strtotime进行加减月计算时的跳月问题

最后

以上就是文静彩虹为你收集整理的php strtotime 每月31日 加/减一个月的问题的全部内容,希望文章能够帮你解决php strtotime 每月31日 加/减一个月的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部