PHP取得日が曜日、週の日付、週の開始日と終了日に対応する方法

2899 ワード

この例では、PHP取得日が週、週、週の開始日と終了日に対応する方法について説明します.皆さんの参考にしてください.具体的には以下の通りです.

/*
 *          
 *   $date        ,   :2018-6-22
 */
function get_week($date)
{
  //        
  $date_str = date('Y-m-d', strtotime($date));
  //     
  $arr = explode("-", $date_str);
  //    
  // 
  $year = $arr[0];
  // ,  2   ,  2    
  $month = sprintf('%02d', $arr[1]);
  // ,  2   ,  2    
  $day = sprintf('%02d', $arr[2]);
  //        0;
  $hour = $minute = $second = 0;
  //      
  $strap = mktime($hour, $minute, $second, $month, $day, $year);
  //        
  $number_wk = date("w", $strap);
  //       
  $weekArr = array("0", "1", "2", "3", "4", "5", "6");
  //         
  return $weekArr[$number_wk];
}
/**
 *       
 * @param $time    
 * @param $format     
 */
function get_week($time, $format = "Y-m-d") {
  $week = date('w',$time);
  $weekname=array('   ','   ','   ','   ','   ','   ','   ');
  //       
  if(empty($week)){
    $week=7;
  }
  for ($i=0;$i<=6;$i++){
    $data[$i]['date'] = date($format,strtotime( '+'. $i+1-$week .' days',$time));
    $data[$i]['week'] = $weekname[$i];
  }
  return $data;
}
/*
 *                
 * time   
 * first              0          
 */
function getWeekMyActionAndEnd($time = '', $first = 1)
{
  //    
  if (!$time) $time = time();
  $sdefaultDate = date("Y-m-d", $time);
  //$first =1              0          
  //              0        1 - 6
  $w = date('w', strtotime($sdefaultDate));
  //        ,  $w 0,     ,   6  
  $week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days'));
  //      
  $week_end = date('Y-m-d', strtotime("$week_start +6 days"));
  return array("week_start" => $week_start, "week_end" => $week_end);
}


PS:ここでは、時間と日付に関するツールをいくつかお勧めします.
オンライン日付/日数計算機:http://tools.jb51.net/jisuanqi/date_jisuanqi
オンライン日付計算機/差分日数計算機:http://tools.jb51.net/jisuanqi/datecalc
オンライン日数差計算機:http://tools.jb51.net/jisuanqi/onlinedatejsq
Unixタイムスタンプ変換ツール:http://tools.jb51.net/code/unixtime
PHPに関する詳細について興味のある読者は、「php日付と時間用法総括」、「PHP配列(Array)操作技巧大全」、「PHP基本文法入門教程」、「PHP演算と演算子用法総括」、「php対象プロセス設計入門教程」、「PHPネットワークプログラミング技巧総括」、「php文字列(string)用法総括」を参照してください.、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.