Home >Backend Development >PHP Problem >How to use PHP function to calculate the maximum number of days in a given year and month
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:
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:
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:
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:
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!