获取今日日期

$today = date('Y-m-d').' 00:00:00';

获取本周开始及结束日期(周一至周日 )

mk函数:
  $timestamp = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1, date('Y'));
  $monday = date('Y-m-d', $timestamp);// 本周周一
  $timestamp = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y'));
  $sunday = date('Y-m-d', $timestamp);// 本周周日
strtotime函数:
  $defaultDate = date("Y-m-d");// 当前时间   $w=date('w',strtotime($defaultDate));// 现在是周几   $monday=date('Y-m-d',strtotime("$defaultDate -".($w ? $w - 1 : 6).' days'));// 本周周一   $sunday=date('Y-m-d',strtotime("$monday +6 days"));// 本周周日

获取上周开始及结束日期(周一至周日 )

mk函数:
  $timestamp = mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
  $monday = date('Y-m-d', $timestamp);// 上周周一
  $timestamp = mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
  $sunday = date('Y-m-d', $timestamp);// 上周周日
strtotime函数:
  $monday = date('Y-m-d', strtotime("last week Monday", time()));
  $sunday = date('Y-m-d H:i:s', (strtotime(date('Y-m-d', strtotime("last week Sunday", time()))) + 24 * 3600 - 1));

循环本周天数

$time = time();
//获取当前周几
$week =date('w',$time);
$dateArray = [];
for ($i=1;$i<=7;$i++){
    $a = date('Y-m-d' ,strtotime('+' .$i-$week .' days',$time));
    $dateArray[$i] = $a;
}

获取本月开始及结束日期

mk函数:
  $timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
  $firstday= date('Y-m-d', $timestamp);
  $timestamp = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
  $lastday = date('Y-m-d', $timestamp);
strtotime函数:
  $firstday= date('Y-m-01', time());
  $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));

获取上月开始及结束日期

mk函数:
  $timestamp_first = mktime(0, 0, 0, date('m') - 1, 1, date('Y'));
  $firstday= date('Y-m-d', $timestamp_first);
  $timestamp = mktime(23,59,59,date('m')-1,date('t',$timestamp_first),date('Y'));
  $lastday = date('Y-m-d', $timestamp);
strtotime函数:
  $firstday= date('Y-m-01', strtotime('-1 month'));
  $lastday = date('Y-m-t', strtotime('-1 month'));

获取本季度开始及结束时间

$season = ceil(date('n') /3); //获取月份的季度
mk函数:     $timestamp = mktime(0,0,0,($season - 1) *3 +1,1,date('Y'));   $startdate = date('Y-m-01',$timestamp);   $timestamp = mktime(0,0,0,$season * 3,1,date('Y'));   $enddate = date('Y-m-t',$timestamp);
strtotime函数:
  $timesdate = date('y-m-01',strtotime(date('Y').'-'.($season - 1) *3 +1));
  $enddate = date('y-m-t',strtotime(date('Y').'-'.($season *3)));

获取上季度开始及结束时间

$season = ceil(date('n') /3); //获取月份的季度
mk函数:     $timestamp = mktime(0,0,0,($season - 2) * 3 +1,1,date('Y'));   $startdate = date('Y-m-01',$timestamp);   $timestamp = mktime(0,0,0,($season - 1) * 3,1,date('Y'));   $enddate = date('Y-m-t',$timestamp);
strtotime函数:
  $startdate = date('Y-m-01',strtotime(date('Y').'-'.(($season-1)*3-2)));
  $enddate = date('Y-m-t',strtotime(date('Y').'-'.($season-1)*3));
注:
strtotime()
  将英文文本日期时间解析为 Unix 时间戳
  示例
    echo(strtotime("now") . "<br>");// 当前时间
    echo(strtotime("15 October 1980") . "<br>");/ 具体时间
    echo(strtotime("+5 hours") . "<br>");//5小时
    echo(strtotime("+1 week") . "<br>");//一周
    echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "<br>");//一周三天
    echo(strtotime("next Monday") . "<br>");//下周一
    echo(strtotime("last Sunday"));//上周日
    strtotime(‘-1 year’);//上一年
mktime(hour,minute,second,month,day,year)
  返回一个日期的 UNIX 时间戳。然后使用它来查找该日期的天: