php获取当月天数及当月第一天及最后一天、上月第一天及最后一天,下个月的第一天,最后一天的实现方法

柔光的暖阳◎ 2022-02-27 14:52 470阅读 0赞

php获取当月天数及当月第一天及最后一天、上月第一天及最后一天,下个月的第一天,最后一天的实现方法

在做查询过程中,例如要实现查上个月从第一天到最后一天的佣金(提成),那我们在程序实现过程中就要让程序在上个月的范围内查询,第一天是比较好办,但最后一天就不定,要去写段函数进行月份及年份判断来得出上个月共有多少天.那就比麻烦,还有获取当前月份,当前年份等常规日期获取函数,以下代码都是经过本公司工程师测试后的正确代码,可以放心使用.
1.获取上个月第一天及最后一天.
echo date(‘Y-m-01’, strtotime(‘-1 month’));
echo “
“;
echo date(‘Y-m-t’, strtotime(‘-1 month’));
echo “
“;
2.获取当月第一天及最后一天.
$BeginDate=date(‘Y-m-01’, strtotime(date(“Y-m-d”)));
echo $BeginDate;
echo “
“;
echo date(‘Y-m-d’, strtotime(“$BeginDate +1 month -1 day”));
echo “
“;
3.获取当天年份、月份、日及天数.
echo “ 本月共有:”.date(“t”).”天”;
echo “ 当前年份”.date(‘Y’);
echo “ 当前月份”.date(‘m’);
echo “ 当前几号”.date(‘d’);
echo “
“;
4.使用函数及数组来获取当月第一天及最后一天,比较实用,出自网友.
function getthemonth($date)
{
$firstday = date(‘Y-m-01’, strtotime($date));
$lastday = date(‘Y-m-d’, strtotime(“$firstday +1 month -1 day”));
return array($firstday,$lastday);
}
$today = date(“Y-m-d”);
$day=getthemonth($today);
echo “当月的第一天: “.$day[0].” 当月的最后一天: “.$day[1];
echo “
“;

借助于date和strtotime函数,可以轻松的获取本月、下月以及上月的第一天和最后一天,下面分别给出其实现。其中函数的参数date格式为yyyy-MM-dd。
1、给定一个日期,获取其本月的第一天和最后一天
function getCurMonthFirstDay($date) {
return date(‘Y-m-01’, strtotime($date));
}

function getCurMonthLastDay($date) {
return date(‘Y-m-d’, strtotime(date(‘Y-m-01’, strtotime($date)) . ‘ +1 month -1 day’));
}
2、给定一个日期,获取其下月的第一天和最后一天
function getNextMonthFirstDay($date) {
return date(‘Y-m-d’, strtotime(date(‘Y-m-01’, strtotime($date)) . ‘ +1 month’));
}

function getNextMonthLastDay($date) {
return date(‘Y-m-d’, strtotime(date(‘Y-m-01’, strtotime($date)) . ‘ +2 month -1 day’));
}
3、给定一个日期,获取其下月的第一天和最后一天
function getPrevMonthFirstDay($date) {
return date(‘Y-m-d’, strtotime(date(‘Y-m-01’, strtotime($date)) . ‘ -1 month’));
}

function getPrevMonthLastDay($date) {
return date(‘Y-m-d’, strtotime(date(‘Y-m-01’, strtotime($date)) . ‘ -1 day’));
}
其中strtotime函数参数“+1 month”,php会根据具体月份来确定增加多少天,可能是28、29(2月)、30(小月)或 31(大月);某月的第一天 “-1 day” 自然就是上个月最后一天,php也会根据月来智能确定是28、29、30或31。
strtotime 的功能很强大,详细用法可以查看官方文档:http://php.net/manual/zh/function.strtotime.php 。

转载:https://blog.csdn.net/qq_31879707/article/details/54848557

获取指定月份的第一天开始和最后一天结束的时间戳

  1. /**
  2. * 获取指定月份的第一天开始和最后一天结束的时间戳
  3. *
  4. * @param int $y 年份 $m 月份
  5. * @return array(本月开始时间,本月结束时间)
  6. */
  7. private function mFristAndLast($y = "", $m = ""){
  8. if ($y == "") $y = date("Y");
  9. if ($m == "") $m = date("m");
  10. $m = sprintf("%02d", intval($m));
  11. $y = str_pad(intval($y), 4, "0", STR_PAD_RIGHT);
  12. $m>12 || $m<1 ? $m=1 : $m=$m;
  13. $firstday = strtotime($y . $m . "01000000");
  14. $firstdaystr = date("Y-m-01 0:0:0", $firstday);
  15. $lastday = strtotime(date('Y-m-d 23:59:59', strtotime("$firstdaystr +1 month -1 day")));
  16. $lastdaystr = date('Y-m-d H:i:s',$lastday);
  17. return array(
  18. "firstday" => $firstday,
  19. "lastday" => $lastday,
  20. 'date_first' => $firstdaystr,
  21. 'date_last' => $lastdaystr
  22. );
  23. }

发表评论

表情:
评论列表 (有 0 条评论,470人围观)

还没有评论,来说两句吧...

相关阅读