Mehrere gängige Methoden zur Erfassung von Zeitintervallinformationen in PHP

XuPing.Yang
Freigeben: 2021-08-16 13:34:55
Original
476 Leute haben es durchsucht

Manchmal stoßen wir bei der Entwicklung eines Projekts auf das Problem, die Start- und Endzeit von vor ein paar Tagen, ein paar Tagen später, heute, dieser Woche usw. zu ermitteln, die vorherigen Monate zu ermitteln und die Anzahl der Monate zu ermitteln Tage in diesem Jahr usw. Im Folgenden habe ich einige gängige zeitbezogene Methoden zusammengefasst, von denen ich hoffe, dass sie für alle nützlich sind:

1 Holen Sie sich die öffentlichen Funktionen der vorherigen Monate

toSelfMonth($m){
$today = input('param.today') ? input('param.today') : date("Y-m-d");
$arr = array();
$old_time = strtotime('-'.$m.' Monat',strtotime($today));
für ($i = 0;$i <= $m; ++$i){
$t = strtotime("+$i Monat",$old_time);
$arr[]=date('Y-m' ,$t);
}
return $arr;
}

2. Holen Sie sich das Datum der letzten Tage

öffentliche Funktion toSelfDay($m ){
$today = input('param.today' ) ? input('param.today') : date("Y-m-d");
$arr = array();
$old_time = strtotime('-'.$ m.'day',strtotime($today));
for($i = 0;$i <= $m; ++$i){
$t = strtotime("+$i day",$old_time );
$arr[]=date('Y-m-d',$t);
}
return $arr;
}

3. Berechnen Sie die Anzahl der Tage in den vorherigen Monaten

public function getLastMonthDays($month){
$arr = $this-> ;toSelfMonth($month);
$y = date('Y',time());
$days = date('d',time() );
for ($i=0;$i $days = $days + date('t', strtotime($arr[$i]."-01 "));
}
return $days;
}
4. Ermitteln Sie die Anzahl der Tage in einem bestimmten Monat
public function getSelfMonthDays(){
/*$days = cal_days_in_month(CAL_GREGORIAN, 4, 2011);* /
$days = date('t', strtotime("2011-4- 1"));
/*$days = date("t");
echo "Die Anzahl der Tage im aktuellen Monat".$ Tage."
";*/
return $days;
}

5. Rufen Sie die Start- und Endzeitstempel des angegebenen Jahres und Monats ab

public function getSelfMonthStartEnd($y=0, $m=0){
$y = $y ? $y : Datum('Y');
$m = $m ? $m : Datum('m');
$d = Datum('t', strtotime($y.'-'.$m));
return array("start"=> strtotime($y.'-'.$m),"end"=>mktime(23,59,59 ,$m,$d,$y));
}

6. Datumsintervall abrufen

Um das Zeitintervall zu erhalten, müssen Sie zunächst die Zeit in einen Zeitstempel umrechnen , sodass die folgenden Maßeinheiten erhalten werden:

(1) 1 Stunde ist 3600s

(2) 1 Tag ist 24*3600s, also 86400 Sekunden

Gemäß diesen beiden Bedingungen wird die folgende Methode erhalten

function GetDateLong($time1,$time2){

if($time2 >= $time1){
$long = $time2 - $time1;
}else{
        $long = -($time2 - $time1);
    }
    if($long > 0){
            $year_day = $this->GetYearDay($time1);
         $ year = floor($long/($year_day*86400));
$day = floor( ($long)%($year_day*86400);
if($year >= 1){
$ Year 'Nian'
} else {
Return $ day. Finden Sie heraus, ob es ein Schaltjahr ist.



Wenn ein Jahr 365 Tage hat, ist es ein gewöhnliches Jahr, und wenn es 366 Tage im Jahr ist, ist es ein Schaltjahr.

1. Gewöhnliches Schaltjahr: Das gregorianische Kalenderjahr ist ein Vielfaches von 4, normalerweise ein Schaltjahr. (Beispiel: 2004 ist ein Schaltjahr des 2. Jahrhunderts: Das gregorianische Kalenderjahr ist einhundert und muss ein Vielfaches von 400 sein, um ein Schaltjahr zu sein. (Beispiel: 1900 ist kein Jahrhundertschaltjahr.) aber 2000 ist ein Jahrhundertschaltjahr).

Gemäß dieser Bedingung können wir die folgende Methode erhalten, um zu ermitteln, ob es sich um ein gewöhnliches Jahr oder ein Schaltjahr handelt: öffentliche Funktion GetYearType($year){

if ($year%4==0&&($year%100 !=0 ||. $year% 400==0)){           return 1;
                return 2;
  }

8. Bestimmen Sie, wie viele Tage ein Jahr hat

Dasselbe wie bei der Einführung von 7 oben. Das gregorianische Kalenderjahr ist ein Vielfaches von 4, normalerweise ein Schaltjahr. Jahre im gregorianischen Kalender werden in Hundertern gezählt und müssen ein Vielfaches von 400 sein, um ein Schaltjahr zu sein.

Gemäß dieser Bedingung können wir die Methode vervollständigen, um die Anzahl der Tage in einem Jahr zu erhalten

öffentliche Funktion GetYearDay($time){
$year = date("Y",$time);
$a1 = $ Jahr/100;
if($a1 == 0){
$b1 = $Jahr/400;
$b1 = $Jahr/400;
if($b1 > 0){
$long = 365;
} else{
$long = 366;
} }
}else{
              $b2 = $year/4;
                if($b2 == 0){
             $long = 366;
                                                   
}
return $long;
}

Das obige ist der detaillierte Inhalt vonMehrere gängige Methoden zur Erfassung von Zeitintervallinformationen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
1
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