Maison  >  Article  >  développement back-end  >  Expliquez le contenu pertinent de php pour obtenir la date spécifiée

Expliquez le contenu pertinent de php pour obtenir la date spécifiée

jacklove
jackloveoriginal
2018-06-09 09:23:282326parcourir

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(&#39;U&#39;);    // 获取日期是周几
    $day = (new DateTime(&#39;@&#39;.$timestamp))->format(&#39;w&#39;);    // 计算开始日期
    if($day>=$start){        $startdate_timestamp = mktime(0,0,0,date(&#39;m&#39;,$timestamp),date(&#39;d&#39;,$timestamp)-($day-$start),date(&#39;Y&#39;,$timestamp));
    }elseif($day<$start){        $startdate_timestamp = mktime(0,0,0,date(&#39;m&#39;,$timestamp),date(&#39;d&#39;,$timestamp)-7+$start-$day,date(&#39;Y&#39;,$timestamp));
    }    // 结束日期=开始日期+6
    $enddate_timestamp = mktime(0,0,0,date(&#39;m&#39;,$startdate_timestamp),date(&#39;d&#39;,$startdate_timestamp)+6,date(&#39;Y&#39;,$startdate_timestamp));    $startdate = (new DateTime(&#39;@&#39;.$startdate_timestamp))->format(&#39;Y-m-d&#39;);    $enddate = (new DateTime(&#39;@&#39;.$enddate_timestamp))->format(&#39;Y-m-d&#39;);    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 = &#39;2016-04-27&#39;;for($start=0; $start<=6; $start++){    list($startdate, $enddate) = getWeekRange($date, $start);    echo &#39;date:&#39;.$date.&#39; week start:&#39;.$start.&#39; range:&#39;.$startdate.&#39;, &#39;.$enddate.&#39;<br>&#39;;
}?>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn