En raison de besoins professionnels, j'ai besoin d'obtenir les dates de début et de fin de la semaine à partir de jeudi, et PHP ne fournit pas de méthode pour obtenir les dates de début et de fin de cette semaine, j'ai donc écrit une méthode pour une utilisation future. .
Méthode de calcul :
<?php/** * 计算指定日期的一周开始及结束日期 * @param DateTime $date 日期 * @param Int $start 周几作为一周的开始 1-6为周一~周六,0为周日,默认0 * @retrun Array */function getWeekRange($date, $start=0){ // 将日期转时间戳 $dt = new DateTime($date); $timestamp = $dt->format('U'); // 获取日期是周几 $day = (new DateTime('@'.$timestamp))->format('w'); // 计算开始日期 if($day>=$start){ $startdate_timestamp = mktime(0,0,0,date('m',$timestamp),date('d',$timestamp)-($day-$start),date('Y',$timestamp)); }elseif($day<$start){ $startdate_timestamp = mktime(0,0,0,date('m',$timestamp),date('d',$timestamp)-7+$start-$day,date('Y',$timestamp)); } // 结束日期=开始日期+6 $enddate_timestamp = mktime(0,0,0,date('m',$startdate_timestamp),date('d',$startdate_timestamp)+6,date('Y',$startdate_timestamp)); $startdate = (new DateTime('@'.$startdate_timestamp))->format('Y-m-d'); $enddate = (new DateTime('@'.$enddate_timestamp))->format('Y-m-d'); return array($startdate, $enddate); }?>
Exemple : Le test démarre du lundi au dimanche pour calculer l'heure de début et de fin de la semaine
<?php$date = '2016-04-27';for($start=0; $start<=6; $start++){ list($startdate, $enddate) = getWeekRange($date, $start); echo 'date:'.$date.' week start:'.$start.' range:'.$startdate.', '.$enddate.'<br>'; }?>
Sortie :
date:2016-04-27 week start:0 range:2016-04-24, 2016-04-30date:2016-04-27 week start:1 range:2016-04-25, 2016-05-01date:2016-04-27 week start:2 range:2016-04-26, 2016-05-02date:2016-04-27 week start:3 range:2016-04-27, 2016-05-03date:2016-04-27 week start:4 range:2016-04-21, 2016-04-27date:2016-04-27 week start:5 range:2016-04-22, 2016-04-28date:2016-04-27 week start:6 range:2016-04-23, 2016-04-29
Cet article explique le contenu pertinent pour obtenir la date spécifiée en php. Pour plus de connaissances connexes, veuillez faire attention au php. Site chinois.
Recommandations associées :
Explication détaillée de la façon dont PHP génère une classe RequestID unique
Comment vérifier la capacité de la table de base de données via MySQL
Explication sur la façon d'utiliser php str_getcsv pour analyser une chaîne dans un tableau
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!