/**
* 两个日期之间的所有日期
*
* @param string $start 开始日期 $end 结束日期
* @return array(本月开始时间,本月结束时间)
*/
function prDates($start, $end)
{
$dt_start = strtotime($start);
$dt_end = strtotime($end);
$arr = [];
while ($dt_start <= $dt_end) {
array_push($arr, date('Y-m-d', $dt_start));
$dt_start = strtotime('+1 day', $dt_start);
}
return $arr;
}
/**
* 两个日期之间的所有月份
*
* @param string $start 开始日期 $end 结束日期
* @return array(开始月,结束月)
*/
function prMonthsk($start, $end)
{
$time1 = strtotime($start); // 自动为00:00:00 时分秒 两个时间之间的年和月份
$time2 = strtotime($end);
$monarr = array();
$monarr[] = date('Y-m', $time1); // 当前月;
while (($time1 = strtotime('+1 month', $time1)) <= $time2) {
$monarr[] = date('Y-m', $time1); // 取得递增月;
}
array_push($monarr, date('Y-m', $time2));
return array_unique($monarr);
}
/**
* 获取指定月份的第一天开始和最后一天结束的时间戳
*
* @param int $y 年份 $m 月份
* @return array(本月开始时间,本月结束时间)
*/
function mFristAndLast($y = "", $m = "")
{
if ($y == "") $y = date("Y");
if ($m == "") $m = date("m");
$m = sprintf("%02d", intval($m));
$y = str_pad(intval($y), 4, "0", STR_PAD_RIGHT);
$m > 12 || $m < 1 ? $m = 1 : $m = $m;
$firstday = strtotime($y . $m . "01000000");
$firstdaystr = date("Y-m-01", $firstday);
$lastday = strtotime(date('Y-m-d 23:59:59', strtotime("$firstdaystr +1 month -1 day")));
return array(
"firstday" => $firstday,
"lastday" => $lastday
);
}