Dans l'article précédent "Comment déterminer le nombre de jours dans un mois spécifié via PHP", nous avons présenté la méthode d'utilisation de l'instruction switch case pour obtenir le nombre maximum de jours dans un certain mois d'une certaine année selon la situation ; dans la déclaration du cas de changement, pour février, vous devez également déterminer si l'année est une année bissextile avant de pouvoir obtenir le nombre maximum de jours, ce qui est un peu gênant !
Alors comment calculer simplement et efficacement le nombre de jours dans un mois donné et obtenir le nombre maximum de jours dans une certaine année ou un certain mois ? En fait, la fonction date() intégrée à PHP peut résoudre ce problème ! La fonction
date() peut formater l'horodatage Unix spécifié en date et heure locales. Il vous suffit de définir le format de sortie sur "t
" pour renvoyer le nombre de jours contenus dans un mois donné. t
”,即可返回给定月份中包含的天数。
我们来试试:
<?php header("Content-type:text/html;charset=utf-8"); $time="2000-2"; $date=date("t",$time); echo "$time 月共有 $date 天<br>"; ?>
看看输出结果:
报错且输出的最大天数不对,这是为什么呢?回去看看上文,可以发现:
date() 函数接受的$time
参数必须是一个Unix 时间戳格式的日期时间,我们需要将字符串类型的时间"2000-2"解析为 Unix 时间戳格式。
这就需要使用strtotime() 函数了,该函数可以将任何英文文本的日期或时间描述解析为 Unix 时间戳。
因此PHP程序可以写成:
<?php header("Content-type:text/html;charset=utf-8"); $i="2000-2"; $time=strtotime("$i"); //取得一个日期的 Unix 时间戳; $date=date("t",$time); echo "$i 月共有 $date 天<br>"; ?>
我们看看输出结果:
因为2000年是一个闰年,所以2月共有29天。OK!输出正确。
我们将其写成一个功能函数:
<?php function GetMaxDay($year,$month){ $time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳; $date=date("t",$time); echo "$year 年 $month 月共有 $date 天<br>"; } ?>
调用GetMaxDay($year,$month)
获取某年、某月的最大天数
GetMaxDay(1996,2); GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4);
输出结果为:
其实,PHP中不止strtotime() 函数可以解析日期,返回一个日期的 UNIX 时间戳;mktime() 函数也可以。
下面我们来改写一下GetMaxDay()函数,在里面利用mktime() 函数来取得一个日期的 Unix 时间戳
<?php header("Content-type:text/html;charset=utf-8"); function GetMaxDay($year,$month){ $time = mktime(20,20,20,$month,1,$year); //取得一个日期的 Unix 时间戳; $date=date("t",$time); echo "$year 年 $month 月共有 $date 天<br>"; } GetMaxDay(1996,2); GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4); ?>
输出结果为:
可以看出:mktime(20,20,20,$month,1,$year)
函数需要指定6个参数,分别为小时、分钟、秒钟、月份、天数、年份。其中小时、分钟、秒钟可以随便设置,月份和年份就是我们给定的$month
和$year
rrreeeRegardez le résultat :
$time
accepté par la fonction 🎜🎜date() doit être une date et une heure au format horodatage Unix. Nous devons convertir la chaîne Time de type "2000-2" résolue au format d'horodatage Unix. 🎜🎜Cela nécessite l'utilisation de la fonction strtotime(), qui peut analyser n'importe quelle description de date ou d'heure de texte anglais dans un horodatage Unix. 🎜🎜Le programme PHP peut donc être écrit comme : 🎜rrreee🎜Jetons un coup d'œil au résultat : 🎜🎜🎜🎜Parce que 2000 est une année bissextile, il y a 29 jours en février. D'ACCORD! La sortie est correcte. 🎜🎜Nous l'écrivons comme une fonction fonctionnelle : 🎜rrreee🎜Appelez GetMaxDay($year,$month)
pour obtenir le nombre maximum de jours dans une année et un mois donnés🎜rrreee🎜Le résultat de sortie est : 🎜🎜🎜🎜Dans En fait, il y a plus que la fonction strtotime dans PHP() qui peut analyser les dates et renvoyer un horodatage UNIX d'une date ; la fonction mktime() peut également être utilisée. 🎜🎜Réécrivons la fonction GetMaxDay() et utilisons la fonction mktime() pour obtenir l'horodatage Unix d'une datemktime(20,20, 20, $month,1,$year)
La fonction doit spécifier 6 paramètres, à savoir les heures, les minutes, les secondes, les mois, les jours et les années. Les heures, les minutes et les secondes peuvent être réglées à volonté. Le mois et l'année sont les $mois
et $année
que nous avons donnés, et le nombre de jours peut être réglé. 1 (tant que la valeur n'est pas légèrement supérieure à 28). 🎜🎜D'accord, c'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜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!