Maison  >  Article  >  programmation quotidienne  >  Plusieurs méthodes courantes d'acquisition d'informations sur les intervalles de temps en PHP

Plusieurs méthodes courantes d'acquisition d'informations sur les intervalles de temps en PHP

XuPing.Yang
XuPing.Yangoriginal
2021-08-16 09:39:31288parcourir

Parfois, lorsque nous développons un projet, nous rencontrerons le problème d'obtenir l'heure de début et l'heure de fin d'il y a quelques jours, quelques jours plus tard, aujourd'hui, cette semaine, etc., d'obtenir les mois précédents, d'obtenir le nombre de jours cette année, etc. Voici ce que j'ai résumé Plusieurs méthodes courantes liées au temps, j'espère qu'elles seront utiles à tout le monde :

1 Obtenez les mois précédents

fonction publique versSelfMonth($m){
. $aujourd'hui = input('param.today') ? input('param.today') : date("Y-m-d");
$arr = array();
$old_time = strtotime('-'.$m.' mois',strtotime($aujourd'hui));
pour ($i = 0;$i <= $m; ++$i){
$t = strtotime("+$i mois",$old_time);
$arr[]=date('Y-m' ,$t);
}
return $arr;
}

2 Obtenez la date des jours précédents

fonction publique toSelfDay($m ){
$today = input('param.today' ) ? input('param.today') : date("Y-m-d");
$arr = array();
$old_time = strtotime('-'.$ m.' jour',strtotime($aujourd'hui));
pour($i = 0;$i <= $m; ++$i){
$t = strtotime("+$i jour",$old_time );
$arr[]=date('Y-m- d',$t);
}
return $arr;
}

3 Calculez le nombre de jours dans les mois précédents

public. function getLastMonthDays($mois){
$arr = $this-> ;toSelfMonth($mois);
$y = date('Y',time());
$days = date('d',time() );
pour ($i=0;$i $days = $days + date('t', strtotime($arr[$i]."-01 "));
}
return $days;
}
4. Obtenez le nombre de jours dans un certain mois
public function getSelfMonthDays(){
/*$days = cal_days_in_month(CAL_GREGORIAN, 4, 2011);* /
$days = date('t', strtotime("2011-4- 1"));
/*$days = date("t");
echo "Le nombre de jours dans le mois en cours".$ jours."
";*/
return $days;
}

5. Obtenez les horodatages de début et de fin de l'année et du mois spécifiés

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

6. Obtenir l'intervalle de date

Pour obtenir l'intervalle de temps, vous devez d'abord convertir l'heure en horodatage. Les horodatages sont généralement mesurés en secondes. , on obtient donc les unités de mesure suivantes :

(1) 1 heure équivaut à 3600s

(2) 1 jour équivaut à 24*3600s, soit 86400 secondes

Selon ces deux conditions, la méthode suivante est obtenue

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)/86400);
if($year >= 1){
$ Year 'Nian' $ Day 'Heaven';
} else {
Return $ day. Déterminez si c'est une année bissextile



S'il y a 365 jours dans une année, c'est une année ordinaire, et s'il y a 366 jours dans une année, c'est une année bissextile.

1. Année bissextile ordinaire : L'année civile grégorienne est un multiple de 4, généralement une année bissextile. (Par exemple, 2004 est une année bissextile); 2. Année bissextile du siècle : l'année civile grégorienne est de cent, et elle doit être un multiple de 400 pour être une année bissextile (par exemple, 1900 n'est pas une année bissextile d'un siècle, mais 2000 est une année bissextile).

Selon cette condition, nous pouvons obtenir la méthode suivante pour savoir s'il s'agit d'une année ordinaire ou d'une année bissextile

fonction publique GetYearType($year){
if ($year%4==0&&($year%100 !=0 || $year% 400==0)){
            return 1;

    }else{

                return 2 ; combien de jours dans une année

Identique à l'introduction du 7 ci-dessus. L'année civile grégorienne est un multiple de 4, généralement une année bissextile. Les années du calendrier grégorien se comptent par centaines et doivent être un multiple de 400 pour être une année bissextile.

Selon cette condition, nous pouvons compléter la méthode pour obtenir le nombre de jours dans une année

public function GetYearDay($time){
$year = date("Y",$time);
$a1 = $ année/100;
si($a1 == 0){
$b1 = $année/400;
$b1 = $année/400;
si($b1 > 0){
$long = 365;
} else{
$long = 366;
} }
}else{
              $b2 = $year/4;
                  if($b2 == 0){
                    -- $long = 366;
                                                  
}
return $long ;
}

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