php 一年每月开始结束时间,PHP 获取每个月的开始和结束时间
发布日期:2021-06-24 11:36:38 浏览次数:2 分类:技术文章

本文共 1185 字,大约阅读时间需要 3 分钟。

/**

* 获取每个月的开始和结束时间

* @param $start

* @param $end

* @return array|string

*/

function getMonthFromRange($start, $end)

{

if (!is_numeric($start) || !is_numeric($end) || ($end <= $start)) return '';

$startTime = date('Y-m', $start);

$endTime = date('Y-m', $end);

//转为时间戳

$startTime = strtotime($startTime . '-01');

$endTime = strtotime($endTime . '-01');

$i = 0;

$lastData = array();

while($startTime<=$endTime){

$month = array();

//这里累加每个月的的总秒数 计算公式:上一月1号的时间戳秒数减去当前月的时间戳秒数

if ($i == 0) {

$month[] = date('Y-m-d H:i:s', $start);

$firstday = date('Y-m-01', $start);

$month[] = date('Y-m-d 23:59:59', strtotime("$firstday +1 month -1 day"));

} elseif ($startTime == $endTime) {

$month[] = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m", $startTime), 01, date("Y", $startTime)));

$month[] = date('Y-m-d H:i:s', $end);

} else {

$month[] = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m", $startTime), 01, date("Y", $startTime)));

$month[] = date("Y-m-d H:i:s", mktime(23, 59, 59, date("m", $startTime), date('d', strtotime("$month[0] +1 month -1 day")), date("Y", $startTime)));

}

$startTime += strtotime('+1 month', $startTime) - $startTime;

$lastData[$i] = $month;

$i++;

}

return $lastData;

}

?>

转载地址:https://blog.csdn.net/weixin_32541663/article/details/116147331 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php正则匹配两个字符串,怎么用正则表达式找出两个字符串的差异
下一篇:chinaz php 解密,PHP加密解密

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月18日 02时36分11秒