Dans l'article précédent "Comment calculer le nombre total de jours pour une année, un mois et un jour donnés via PHP", nous avons présenté une méthode de calcul du nombre total de jours pour une année, un mois et un jour donnés. Cette fois, nous allons simplifier la méthode et vous montrer comment calculer le nombre total de jours à l'aide de la fonction strtotime().
Le thème de cet article est : étant donné une année, un mois et un jour, calculez le nombre total de jours jusqu'à ce jour.
Comment calculer cela ? Si vous n'avez aucune idée, changeons la direction et simplifions-la. Ne s'agit-il pas simplement de trouver le nombre de jours entre le 1er janvier, année x - jour x, mois x, année x, c'est-à-dire de trouver le décalage horaire entre les deux dates. Alors comment trouver le décalage horaire ?
Nous devons d'abord convertir deux dates : 1er janvier de x année et x mois x jour de x année en horodatages
$startdate = strtotime("{$year}-01-01"); $enddate = strtotime("{$year}-{$month}-{$day}");
Ensuite, soustraire les deux horodatages (heure de fin - heure de début)
$diff_seconds = $enddate-$startdate;
Cela obtiendra le décalage horaire entre les deux dates, mais il sera toujours compté en secondes, ce qui n'est pas propice à la lecture.
Parce qu'il y a 24 heures dans une journée, 60 minutes dans une heure et 60 secondes dans une minute. Si vous convertissez 24*60*60=86400
, il y a 86 400 secondes dans une journée.
Divisez la différence de temps $diff_seconds par 86400, puis utilisez floor() pour arrondir à l'entier le plus proche
$time = floor(($diff_seconds)/86400);
Ce que vous obtenez à ce moment est la différence en jours, à l'exclusion du jour x mois x jour, vous devez ajouter 1, c'est le nombre total de jours se terminant un certain jour d'un certain mois d'une certaine année.
Jetons un coup d'œil au code complet :
function GetDays($year,$month,$day){ $startdate = strtotime("{$year}-01-01"); $enddate = strtotime("{$year}-{$month}-{$day}"); $diff_seconds = $enddate-$startdate; $time = floor(($diff_seconds)/86400); $day = $time+1; echo "截止{$year}-{$month}-{$day} 共有 {$day} 天<br>"; }
Testez-le : calculez le nombre total de jours à partir de 2000-3-5 (car 2000 est une année bissextile, donc 31+29+5=65)
GetDays(2000,3,5);
Le résultat de sortie est :
OK, le nombre total de jours est correct ! En utilisant la fonction GetDays($year,$month,$day), nous pouvons également calculer le nombre total de jours dans une année
GetDays(2000,12,31); GetDays(2021,12,31);
Le résultat de sortie est :
D'accord, c'est tout si vous voulez savoir. autre chose, vous pouvez cliquer dessus. → →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!