Heim > Backend-Entwicklung > PHP-Problem > So berechnen Sie die Differenz in Wochen zwischen zwei Daten in PHP

So berechnen Sie die Differenz in Wochen zwischen zwei Daten in PHP

藏色散人
Freigeben: 2023-03-11 20:00:02
Original
1901 Leute haben es durchsucht

So berechnen Sie die Anzahl der Wochen zwischen zwei Daten in PHP: Erstellen Sie zunächst eine PHP-Beispieldatei und verwenden Sie dann „function format($a,$b){...}“ und andere Methoden, um die Anzahl der Wochen dazwischen zu berechnen zwei Daten, das ist Can.

So berechnen Sie die Differenz in Wochen zwischen zwei Daten in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Wie berechnet PHP die Differenz in Wochen zwischen zwei Daten?

Verwenden Sie PHP, um die Anzahl der Jahre, Monate, Wochen und Tage zwischen zwei Daten zu berechnen:

Der Code lautet wie folgt:

<?php
    function format($a,$b){
        //检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大
        if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a);
        $start  = strtotime($a);
        $stop   = strtotime($b);
        $extend = ($stop-$start)/86400;
        $result[&#39;extends&#39;] = $extend;
        if($extend<7){                //如果小于7天直接返回天数
            $result[&#39;daily&#39;] = $extend;
        }elseif($extend<=31){        //小于28天则返回周数,由于闰年2月满足了
            if($stop==strtotime($a.&#39;+1 month&#39;)){
                $result[&#39;monthly&#39;] = 1;
            }else{
                $w = floor($extend/7);
                $d = ($stop-strtotime($a.&#39;+&#39;.$w.&#39; week&#39;))/86400;
                $result[&#39;weekly&#39;]  = $w;
                $result[&#39;daily&#39;]   = $d;
            }
        }else{
            $y=    floor($extend/365);
            if($y>=1){                //如果超过一年
                $start = strtotime($a.&#39;+&#39;.$y.&#39;year&#39;);
                $a     = date(&#39;Y-m-d&#39;,$start);
                //判断是否真的已经有了一年了,如果没有的话就开减
                if($start>$stop){
                    $a = date(&#39;Y-m-d&#39;,strtotime($a.&#39;-1 month&#39;));
                    $m =11;
                    $y--;   
                }
                $extend = ($stop-strtotime($a))/86400;
            }
            if(isset($m)){
                $w = floor($extend/7);
                $d = $extend-$w*7;
            }else{
                $m = isset($m)?$m:round($extend/30);
                $stop>=strtotime($a.&#39;+&#39;.$m.&#39;month&#39;)?$m:$m--;
                if($stop>=strtotime($a.&#39;+&#39;.$m.&#39;month&#39;)){
                    $d=$w=($stop-strtotime($a.&#39;+&#39;.$m.&#39;month&#39;))/86400;
                    $w = floor($w/7);
                    $d = $d-$w*7;
                }
            }
            $result[&#39;yearly&#39;]  = $y;
            $result[&#39;monthly&#39;] = $m;
            $result[&#39;weekly&#39;]  = $w;
            $result[&#39;daily&#39;]   = isset($d)?$d:null;
        }
        return array_filter($result);
    }
    print_r(format(&#39;2012-10-1&#39;,&#39;2012-12-15&#39;));
?>
Nach dem Login kopieren

Laufergebnisse:

Array([extends]=>75[monthly]=>2[weekly]=>2)
Nach dem Login kopieren

php Fragen Sie die Anzahl der Wochen ab, in denen ein bestimmter Tag liegt und das Startdatum der entsprechenden Woche

Der Code lautet wie folgt:

/**
* @file
* @version  1.1
* @author  QQ83989686
* @date  2012-8-7 最后修改时间
* @brief
*/
    //获取某个日期的 周数、周对应的开始结束时间
    private function getWeekStartEndDay($day)
    {
        $g  = strftime("%u",strtotime($day));
        return array(&#39;week_num&#39;=>strftime("%V",strtotime($day)),&#39;week_start_day&#39;=>strftime(&#39;%Y-%m-%d&#39;,strtotime($day)-($g-1)*86400),&#39;week_start_day_cn&#39;=>strftime(&#39;%Y年%m月%d日&#39;,strtotime($day)-($g-1)*86400),&#39;week_end_day&#39;=>strftime(&#39;%Y-%m-%d&#39;,strtotime($day) + (7-$g)*86400),&#39;week_end_day_cn&#39;=>strftime(&#39;%Y年%m月%d日&#39;,strtotime($day) + (7-$g)*86400));
    }
Nach dem Login kopieren

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo berechnen Sie die Differenz in Wochen zwischen zwei Daten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage