Heim >Backend-Entwicklung >PHP-Problem >So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat
Im vorherigen Artikel „php-Schleife lernen zehn: Bestimmen Sie die Anzahl der Narzissen und drucken Sie die Anzahl aller Narzissen aus“ haben wir die Methode zur Bestimmung der Anzahl der Narzissen und die Verwendung einer for-Schleife zur Ausgabe der Anzahl aller Narzissen vorgestellt. Dieses Mal werfen wir einen Blick auf Datum und Uhrzeit und stellen vor, wie man mit PHP die maximale Anzahl von Tagen in einem bestimmten Jahr oder Monat erhält.
Das Thema dieses Artikels ist: Bestimmen Sie anhand eines Jahres und eines Monats, wie viele Tage der Monat hat.
Wir alle wissen, dass die maximale Anzahl von Tagen in einem Monat in 4 Situationen unterteilt ist:
Großer Monat: 31 Tage;
Kleiner Monat: 30 Tage;
Schaltjahr Februar: 29 Tage
Februar in gewöhnlichen Jahren: 28 Tage
Und jedes Jahr sind Januar, März, Mai, Juli, August, Oktober und Dezember als große Monate festgelegt, während April, Juni, September und November klein sind Monate.
Wir können also die Auswahlkontrollanweisung switch case
verwenden, um eine Urteilsauswahl zu treffen: switch case
来进行一个判断选择:
当月份$month
为1、3、5、7、8、10、12则输出31;当$month
为4、6、9、11则输出30。代码可以这样写:
switch($month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: echo "$month 月共有31天";break; case 4: case 6: case 9: case 11: echo "$month 月共有30天";break; }
测试一下:
当$month=1
,则会输出:
当$month=4
,则会输出:
说明:switch 语句会根据表达式的值,依次与 case 中的值进行比较,如果不相等,继续查找下一个 case;如果相等,就会执行对应的语句,直到 switch 语句结束或遇到 break 为止。
OK,大月和小月的判断还是很简单的,就剩下一个2月了,计算2月的天数,首先需要判断该年是不是闰年。我们可以使用下面一个函数来实现:(具体可以阅读文章《PHP如何输出20世纪的所有闰年》)
function IsLeapYear($year){ return ($year % 400 == 0 || $year % 4 == 0 && $year % 100 != 0); }
如果给定年份是闰年则会返回true或1,如果不是闰年(是平年)则返回false或0。
然后在switch case语句中调用IsLeapYear($year)
函数来进行判断:
case 2: echo IsLeapYear($year)? "$month 月共有29天" : "$month 月共有28天";break;
三元运算符
表达式1?表达式2:表达式3表示:如果条件“表达式1”成立,则执行语句“表达式2”,否则执行“表达式3”。
我们还可以加一个default分支,用来在用户输入除1~12月份的数时,进行提醒:
default:echo '输入错误,请输入1-12之间的数';break;
好了,将上面的代码封装为一个功能函数:
function IsLeapYear($year){ return ($year % 400 == 0 || $year % 4 == 0 && $year % 100 != 0); } function GetMaxDay($year,$month) { switch($month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: echo "$year 年 $month 月共有31天
";break; case 4: case 6: case 9: case 11: echo "$year 年 $month 月共有30天
";break; case 2: echo IsLeapYear($year)? "$year 年 $month 月共有29天
" : "$year 年 $month 月共有28天
";break; default:echo '输入错误,请输入1-12之间的数
';break; } }
调用GetMaxDay($year,$month)
Wenn der Monat $month
1, 3, 5, 7, 8 ist, 10, 12 gibt 31 aus; wenn $month
4, 6, 9 oder 11 ist, wird 30 ausgegeben. Der Code kann wie folgt geschrieben werden:
GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4);
Testen Sie es:
Wenn $month=1
ist, wird Folgendes ausgegeben:
Wenn $month=4
, wird es ausgegeben :
IsLeapYear($year)
in der Switch-Case-Anweisung auf, um ein Urteil zu fällen: 🎜🎜rrreee🎜Der ternäre Operator🎜🎜rrreee🎜 bedeutet: Wenn die Bedingung „Ausdruck 1 " Wenn es eingerichtet ist, führen Sie die Anweisung „Ausdruck 2“ aus, andernfalls führen Sie „Ausdruck 3“ aus. 🎜🎜Wir können auch einen Standardzweig hinzufügen, um den Benutzer daran zu erinnern, wenn er eine andere Zahl als 1 bis 12 Monate eingibt: 🎜rrreee🎜Okay, kapseln Sie den obigen Code in eine funktionale Funktion: 🎜rrreee🎜 Rufen Sie den
auf GetMaxDay($year,$month)
-Funktion: 🎜🎜rrreee🎜Werfen wir einen Blick auf die Ausgabe: 🎜🎜🎜🎜🎜🎜Da 2000 ein Schaltjahr ist, sind es im Februar 29 Tage 2001 ist ein gewöhnliches Jahr, der Februar hat also 29 Tage. März ist ein großer Monat, also hat er 31 Tage; April ist ein kleiner Monat, also hat er 30 Tage. 🎜🎜Okay, das ist alles. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →🎜php-Video-Tutorial🎜🎜Das obige ist der detaillierte Inhalt vonSo ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!