Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen

So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen

青灯夜游
青灯夜游Original
2021-08-16 14:42:462402Durchsuche

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>";
?>

看看输出结果:

So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen

报错且输出的最大天数不对,这是为什么呢?回去看看上文,可以发现:

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>";
?>

我们看看输出结果:

So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen

因为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);

输出结果为:

So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen

其实,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);
?>

输出结果为:

So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen

可以看出:mktime(20,20,20,$month,1,$year)函数需要指定6个参数,分别为小时、分钟、秒钟、月份、天数、年份。其中小时、分钟、秒钟可以随便设置,月份和年份就是我们给定的$month$year

Lass es uns versuchen:

rrreeeSehen Sie sich die Ausgabe an:

So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen🎜🎜Es wird ein Fehler gemeldet und die maximale Anzahl der ausgegebenen Tage ist falsch. Warum ist das so? Gehen Sie noch einmal zurück und schauen Sie sich das Obige an. Dort finden Sie Folgendes: Der von der Funktion 🎜🎜date() akzeptierte Parameter $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: 🎜🎜So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen🎜🎜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: 🎜🎜So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen🎜🎜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 erhalten
🎜rrreee🎜Das Ausgabeergebnis ist: 🎜🎜So verwenden Sie die PHP-Funktion, um die maximale Anzahl von Tagen in einem bestimmten Jahr und Monat zu berechnen🎜🎜Sie können sehen: mktime(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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn