When I was writing a program today, I suddenly discovered a function I wrote a long time ago to get the number of days in a month. It is a classic switch version. But when I got the number of days in the previous month, I just changed the month by -1. I guess I was too sleepy at the time. I saw a creepy feeling, and originally wanted to deal with it again, but then I thought there must be some super convenient method, so I found the version below and made some minor modifications.
Get the date of this month:
1 function getMonth($date){ 2 $firstday = date("Y-m-01",strtotime($date)); 3 $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day")); 4 return array($firstday,$lastday); 5 }
$firstday is the first day of the month. If $date is 2014-2, $firstday will be 2014-02-01, and then add one month based on $firstday. 2014-03-01, minus one day, is 2014-02-28. It is so convenient to use date() and strtotime().
Get the date of last month:
1 function getlastMonthDays($date){ 2 $timestamp=strtotime($date); 3 $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01')); 4 $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); 5 return array($firstday,$lastday); 6 }
The date of last month needs to get a timestamp first, and then add -1 to the month. Then the super smart date() will convert things like 2014-0-1 into 2013-12-01, so cool.
Get next month’s date:
1 function getNextMonthDays($date){ 2 $timestamp=strtotime($date); 3 $arr=getdate($timestamp); 4 if($arr['mon'] == 12){ 5 $year=$arr['year'] +1; 6 $m -11; 7 $firstday=$year.'-0'.$month.'-01'; 8 $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); 9 }else{ 10 $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01')); 11 $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day")); 12 } 13 return array($firstday,$lastday); 14 }
The code for next month’s date looks a little longer, because date() cannot convert something like 2014-13-01, it It will go back to 1970 directly, so we need to deal with the issue of December first. Except for December, just add the month + 1 and it will be OK.
In general, it is very convenient, the date function is too powerful.
The above introduces PHP to get the dates strtotime, date of last month, next month, and this month, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.