Im vorherigen Artikel „So ermitteln Sie die Anzahl der Tage in einem bestimmten Monat mit PHP“ haben wir die Methode vorgestellt, die Switch-Case-Anweisung zu verwenden, um die maximale Anzahl von Tagen in einem bestimmten Monat eines bestimmten Jahres zu erhalten die Situation; in der Switch-Case-Anweisung müssen Sie für Februar auch feststellen, ob das Jahr ein Schaltjahr ist, bevor Sie die maximale Anzahl von Tagen erhalten können, was etwas mühsam ist!
Wie kann man also einfach und effizient die Anzahl der Tage in einem bestimmten Monat berechnen und die maximale Anzahl von Tagen in einem bestimmten Jahr oder Monat ermitteln? Tatsächlich kann die in PHP integrierte date()-Funktion dieses Problem lösen! Die Funktion
date() kann den angegebenen Unix-Zeitstempel in lokales Datum und Uhrzeit formatieren. Sie müssen nur das Ausgabeformat auf „t
“ setzen, um die Anzahl der in einem bestimmten Monat enthaltenen Tage zurückzugeben. 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
rrreeeSehen Sie sich die Ausgabe an:
$time
muss ein Datum und eine Uhrzeit im Format eines Unix-Zeitstempelssein >. Wir müssen die Zeichenfolge Time vom Typ „2000-2“ in das Unix-Zeitstempelformat konvertieren. 🎜🎜Dies erfordert die Verwendung der Funktion strtotime(), die jede Datums- oder Zeitbeschreibung in englischem Text in einen Unix-Zeitstempel analysieren kann. 🎜🎜Das PHP-Programm kann also wie folgt geschrieben werden: 🎜rrreee🎜Schauen wir uns die Ausgabe an: 🎜🎜🎜🎜Da 2000 ein Schaltjahr ist, hat der Februar 29 Tage. OK! Die Ausgabe ist korrekt. 🎜🎜Wir schreiben es als funktionale Funktion: 🎜rrreee🎜Rufen Sie GetMaxDay($year,$month)
auf, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu erhalten🎜rrreee🎜Das Ausgabeergebnis ist: 🎜🎜🎜🎜In Tatsächlich gibt es in PHP mehr als nur die Funktion strtotime, die Daten analysieren und einen UNIX-Zeitstempel eines Datums zurückgeben kann. 🎜🎜Lassen Sie uns die Funktion GetMaxDay() neu schreiben und die Funktion mktime() verwenden, um den Unix-Zeitstempel eines Datums zu erhaltenmktime(20,20, 20, $month,1,$year)
Die Funktion muss 6 Parameter angeben, nämlich Stunden, Minuten, Sekunden, Monate, Tage und Jahre. Die Stunden, Minuten und Sekunden können nach Belieben eingestellt werden, der Monat und das Jahr sind die von uns angegebenen $month
und $year
und die Anzahl der Tage kann eingestellt werden 1 (solange der Wert nicht knapp über 28 liegt). 🎜🎜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 verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!