Maison  >  Article  >  développement back-end  >  Comment obtenir la semaine du mois pour une date en php

Comment obtenir la semaine du mois pour une date en php

藏色散人
藏色散人original
2021-07-12 10:27:573952parcourir

Comment obtenir le numéro de la semaine du mois en php : créez d'abord un exemple de fichier PHP ; puis transmettez "date('d', $time)-(8 - $wk_day);echo $day<=0 ? 1 : ceil ($day / 7)+1;" Obtenez le jour du mois et la semaine du mois.

Comment obtenir la semaine du mois pour une date en php

L'environnement d'exploitation de cet article : système windows7, version PHP7.1, ordinateur DELL G3

Comment php obtient-il la semaine du mois pour une date ?

La date d'acquisition PHP appartient à la première semaine du mois. Le jour d'acquisition le plus simple est la première semaine du mois

<?php
$time = strtotime(&#39;2019-01-01&#39;);
$wk_day = date(&#39;w&#39;, strtotime(date(&#39;Y-m-1 00:00:00&#39;, $time))) ? : 7; //今天周几
$day = date(&#39;d&#39;, $time) - (8 - $wk_day); //今天几号
echo $day <= 0 ? 1 : ceil($day / 7) + 1; //计算是第几个星期
 
print_r(week_of_month(strtotime(&#39;2019-01-1&#39;)));
 
function week_of_month($time, $offset = 1){
        $week = get_week_block($time);
        $wk_day = date(&#39;w&#39;, strtotime(date(&#39;Y-m-1 00:00:00&#39;, $time))) ? : 7; //今天周几
        $day = date(&#39;d&#39;, $time) - (8 - $wk_day); //今天几号
        $weekof = $day <= 0 ? 1 : ceil($day / 7) + 1; //计算是第几个星期
        if($offset){
            $week[0] = date(&#39;Y-m-d&#39;, max(strtotime(date(&#39;Y-m-1 00:00:00&#39;, $time)), $week[0]));
            $week[1] = date(&#39;Y-m-d&#39;, min(strtotime(date(&#39;Y-m-&#39;.date(&#39;t&#39;, $time).&#39; 23:59:59&#39;, $time)), $week[1]));
        }else{
            $week[0] = date(&#39;Y-m-d&#39;, $week[0]);
            $week[1] = date(&#39;Y-m-d&#39;, $week[1]);
        }
        return [&#39;week&#39; => $week, &#39;weekof&#39; => $weekof];
}
 
function get_week_block($sdefaultDate = false, $first = 1){
//当前日期    
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期  
if(!$sdefaultDate)$sdefaultDate = time();
if(is_numeric($sdefaultDate))$sdefaultDate = date(&#39;Y-m-d&#39;, $sdefaultDate);
//获取当前周的第几天 周日是 0 周一到周六是 1 - 6  
$w=date(&#39;w&#39;, strtotime($sdefaultDate));  
//获取本周开始日期,如果$w是0,则表示周日,减去 6 天  
$week_start=date(&#39;Y-m-d&#39;,strtotime("$sdefaultDate -".($w ? $w - $first : 6).&#39; days&#39;));  
//本周结束日期  
$week_end=date(&#39;Y-m-d&#39;,strtotime("$week_start +6 days"));
return array(strtotime($week_start.&#39; 00:00:00&#39;), strtotime($week_end.&#39; 23:59:59&#39;));
}

Apprentissage recommandé : "Tutoriel vidéo PHP"

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