关于 Date 函数获取各类时间/日期/天数 
                                                    
                        
                    
                    
  
                    
                    获取俩个日期间的所有日期
function getDay($start, $end)
{
    $dtStart = strtotime($start);
    $dtEnd   = strtotime($end);
    $day[] = date('Y-m-d', $dtStart);
    while ($dtStart < $dtEnd) {
      $dtStart  = strtotime('+1 day', $dtStart);
      $day[]    = date('Y-m-d', $dtStart);
    }
    return $day;
}eg:
$day = getDay('2021-07-22', '2021-07-27');
var_dump($day);
######################### 输出
array(6) {
  [0]=>
  string(10) "2021-07-22"
  [1]=>
  string(10) "2021-07-23"
  [2]=>
  string(10) "2021-07-24"
  [3]=>
  string(10) "2021-07-25"
  [4]=>
  string(10) "2021-07-26"
  [5]=>
  string(10) "2021-07-27"
}获取每周的开始时间结束时间
function getWeekActionAndEnd($time = '', $first = 1)
{
    if (!$time) {
      $time = time();
    }
    $defaultDate = date("Y-m-d", $time);
    $w          = date('w', strtotime($defaultDate)); 
    $days       = $w ? $w - $first : 6;
    $week_start = date('Y-m-d', strtotime("{$defaultDate} -{$days} days"));
    $week_end   = date('Y-m-d', strtotime("{$week_start} +6 days"));
    return array("weekStart" => $week_start, "weekEnd" => $week_end);
}eg:
$day = getWeekActionAndEnd(strtotime('2021-07-22'));
var_dump($day);
######################### 输出
array(2) {
  ["weekStart"]=>
  string(10) "2021-07-19"
  ["weekEnd"]=>
  string(10) "2021-07-25"
}获取获取一周日期
function getWeekArr($time = 0, $format = "Y-m-d")
{
    if (!$time) {
      $time = time();
    }
    $week = date('w', $time);
    $weekName = array('星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日');
    if (empty($week)) {
      $week = 7;
    }
    $data = [];
    for ($i = 0; $i <= 6; $i++) {
      $currDay          = $i + 1 - $week;
      $data[$i]['date'] = date($format, strtotime("+{$currDay} days", $time));
      $data[$i]['week'] = $weekName[$i];
    }
    return $data;
}eg:
$day = getWeekArr(strtotime('2021-07-22'));
var_dump($day);
######################### 输出
array(7) {
  [0]=>
  array(2) {
    ["date"]=>
    string(10) "2021-07-19"
    ["week"]=>
    string(9) "星期一"
  }
  [1]=>
  array(2) {
    ["date"]=>
    string(10) "2021-07-20"
    ["week"]=>
    string(9) "星期二"
  }
  [2]=>
  array(2) {
    ["date"]=>
    string(10) "2021-07-21"
    ["week"]=>
    string(9) "星期三"
  }
  [3]=>
  array(2) {
    ["date"]=>
    string(10) "2021-07-22"
    ["week"]=>
    string(9) "星期四"
  }
  [4]=>
  array(2) {
    ["date"]=>
    string(10) "2021-07-23"
    ["week"]=>
    string(9) "星期五"
  }
  [5]=>
  array(2) {
    ["date"]=>
    string(10) "2021-07-24"
    ["week"]=>
    string(9) "星期六"
  }
  [6]=>
  array(2) {
    ["date"]=>
    string(10) "2021-07-25"
    ["week"]=>
    string(9) "星期日"
  }
}获取上个月第一天和最后一天
function getPMonthFirstDay($date) {
    return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' -1 month'));
}
function getPMonthLastDay($date) {
    return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' -1 day'));
}获取下个月第一天和最后一天
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'));
}俩个日期相差的天数
function getDiffDays(string $startTime, string $endTime = '')
{
    if (empty($endTime)) {
        $endTime = date("y-m-d");
    }
    $datetimeStart = date_create($startTime);
    $datetimeEnd   = date_create($endTime);
    $day = date_diff($datetimeStart, $datetimeEnd)->days;
    return $day <= 0 ? 1 : $day;
}本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           Zhengkx 的个人博客
 Zhengkx 的个人博客
         
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: