php时间相关

后端 2020-01-07

月初到月末时间戳

$y = date("Y", time()); //年 
$m = date("m", time()); //月 
$d = date("d", time()); //日 
$t0 = date('t'); // 本月一共有几天 

$start_month = mktime(0, 0, 0, $m, 1, $y); // 本月开始时间戳
$end_month = mktime(23, 59, 59, $m, $t0, $y); // 本月结束时间戳

时间戳

//获取今日开始时间戳和结束时间戳  
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));  
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;  

//获取昨日起始时间戳和结束时间戳  
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));  
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;  

//获取本周起始时间戳和结束时间戳   
$beginThisweek = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y'));  
$endThisweek=time();  

//获取上周起始时间戳和结束时间戳  
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));  
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));  

//获取本月起始时间戳和结束时间戳  
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));  
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));  

 //上个月的起始时间:  
$begin_time = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month')));  
$end_time = strtotime(date("Y-m-d 23:59:59", strtotime(-date('d').'day')));  

$begin_year = strtotime(date("Y",time())."-1"."-1"); //本年开始  
$end_year = strtotime(date("Y",time())."-12"."-31"); //本年结束  

//现在的时间到第二天凌晨相差的时间戳  
$time = (strtotime(date('Y-m-d'))+3600*24) - time() ; 

日期格式

  echo '<br>上周起始时间:<br>';
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n";
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n";
    echo '<br>本周起始时间:<br>';
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))),"\n";
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))),"\n";

    echo '<br>上月起始时间:<br>';
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y"))),"\n";
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))),"\n";
    echo '<br>本月起始时间:<br>';
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1,date("Y"))),"\n";
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))),"\n";
    //本年起始
    echo date('Y-01-01'); 
    //结束日期 
    echo date('Y-12-31');

获取本周所有日期

/**
 * 获取本周所有日期
 */
function get_week($time = '', $format='Y-m-d'){
  $time = $time != '' ? $time : time();
  //获取当前周几
  $week = date('w', $time);
  $date = [];
  for ($i=1; $i<=7; $i++){
    $date[$i] = date($format ,strtotime( '+' . $i-$week .' days', $time));
  }
  return $date;
}

获取最近七天日期

/**
 * 获取最近七天所有日期
 */
function get_weeks($time = '', $format='Y-m-d'){
  $time = $time != '' ? $time : time();
  //组合数据
  $date = [];
  for ($i=1; $i<=7; $i++){
    $date[$i] = date($format ,strtotime( '+' . $i-7 .' days', $time));
  }
  return $date;
}