给一个时间,获取这个月的结束的日期。比如 输入 ‘2018-08-04‘ 输出 ‘2018-08-31‘

Posted willem_chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给一个时间,获取这个月的结束的日期。比如 输入 ‘2018-08-04‘ 输出 ‘2018-08-31‘相关的知识,希望对你有一定的参考价值。

给一个时间,获取这个月的结束的日期。比如 输入 \'2018-08-04\' 输出 \'2018-08-31\'

这个题目,相应如果熟悉 php date 的应该很快能写出来。但是遇到一些求职者,可能没思考清楚,于是就开始编写了。

一个月的结束时间,只要知道这个月有多少天,就能知道最后一天是多少号了?

但是这里你要思考的问题就有很多,因为月份有大小月份(1 3 5 7 8 10 12 则是大月有 31 天,其余的月份除了 2 月,都是小月,每个月有 30 天),你可能会忽略掉 2 月这个特殊的月份,因为 2 月又有 29 天和 28 天。

假设你已经考虑到 2 月了,但是你又得需要考虑闰年了,闰年的规则你需要知道吧!

不考虑超大年的情况下的规则(按照历法 比如 3200 就不是闰年。有兴趣的可以查下资料)

普通年:能被 4 整除但不能被 100 整除的年份为普通闰年。(如 2004 年就是闰年,1999 年不是闰年);
世纪年:能被 400 整除的为世纪闰年。(如 2000 年是闰年,1900 年不是闰年);

PHP 自带函数实现

其实 php 自带的有多种实现的方式,比如 date、DateTime、strtotime 等

php date 函数格式化

t 指定月份的天数;如: “28” 至 “31”


                

以上是关于给一个时间,获取这个月的结束的日期。比如 输入 ‘2018-08-04‘ 输出 ‘2018-08-31‘的主要内容,如果未能解决你的问题,请参考以下文章

使用Scala从给定月份获取前12个月的月底日期

小程序如何获取下个月的起始时间与结束时间

java 怎么获取一个月的日期

获取自然月的起始日期和终止日期

momentjs获取上周上月前三个月的起始和结束时间--直接copy结尾代码

MS Access:按开始日期和结束日期之间每个月的月份分组