Home >Backend Development >PHP Problem >How to use PHP function to calculate the maximum number of days in a given year and month

How to use PHP function to calculate the maximum number of days in a given year and month

青灯夜游
青灯夜游Original
2021-08-16 14:42:462503browse

In the previous article "How to determine the number of days in a specified month through PHP", we introduced the method of using the switch case statement to obtain the maximum number of days in a certain month of a certain year according to the situation; in the switch case statement , for February, you need to first determine whether the year is a leap year before you can get the maximum number of days, which is a bit troublesome!

So how to simply and efficiently calculate the number of days in a given month and obtain the maximum number of days in a certain year or month? In fact, PHP's built-in date() function can solve this problem! The

date() function can format the specified Unix timestamp into local date and time. You only need to set the output format to "t" to return the number of days contained in a given month. .

Let’s try:

<?php
header("Content-type:text/html;charset=utf-8");
$time="2000-2";
$date=date("t",$time);
echo "$time 月共有 $date 天<br>";
?>

Look at the output:

How to use PHP function to calculate the maximum number of days in a given year and month

Maximum number of days for error reporting and output No, why is this? Go back and look at the above, you can find: The

$time

parameter accepted by the date() function must be a date and time in the Unix timestamp format, we need to The string type time "2000-2" is parsed into Unix timestamp format.

This requires the use of the strtotime() function, which can parse the date or time description of any English text into a Unix timestamp.

So the PHP program can be written as:

<?php
header("Content-type:text/html;charset=utf-8");
$i="2000-2";
$time=strtotime("$i"); //取得一个日期的 Unix 时间戳;
$date=date("t",$time);
echo "$i 月共有 $date 天<br>";
?>

Let’s look at the output:

How to use PHP function to calculate the maximum number of days in a given year and month

Because 2000 is a leap year, February There are 29 days in total. OK! The output is correct.

We write it as a functional function:

<?php
function GetMaxDay($year,$month){
	$time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳;
	$date=date("t",$time);
	echo "$year 年 $month 月共有 $date 天<br>";
}
?>

Call GetMaxDay($year,$month)Get the maximum number of days in a certain year and month

GetMaxDay(1996,2);
GetMaxDay(2000,2);
GetMaxDay(2001,2);
GetMaxDay(2001,3);
GetMaxDay(2001,4);

The output result is:

How to use PHP function to calculate the maximum number of days in a given year and month

In fact, not only strtotime() function in PHP can parse dates and return a UNIX timestamp of a date; mktime() function can also be used.

Let’s rewrite the GetMaxDay() function and use the mktime() function to get the Unix timestamp of a date

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

The output result is:

How to use PHP function to calculate the maximum number of days in a given year and month

It can be seen: mktime(20,20,20,$month,1,$year)The function needs to specify 6 parameters, namely hours, minutes, seconds Clock, month, day, year. The hours, minutes, and seconds can be set at will, the month and year are the $month and $year we gave, and the number of days can be set to 1 (as long as the value does not exceed 28 Just fine).

Okay, that’s all. If you want to know anything else, you can click this. → →php video tutorial

The above is the detailed content of How to use PHP function to calculate the maximum number of days in a given year and month. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn