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
}
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).
if ($year%4==0&&($year%100 !=0 ||. $year% 400==0)){ return 1;
return 2; }
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!