PHP Function – Calculating Days In A Month
All developers keep a tool box of useful functions and classes that they pick up or write along the way and this PHP came to me while I was writing an event calendar page for a customer.
I should mention that PHP does offer a cal_days_in_month function for PHP builds of PHP 4.0.7 and higher, but I prefer using the below function because it is guaranteed to work on all PHP version because it is based solely on logic.
The Code
function get_days_in_month($month, $year)
{
return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year %400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
One line of logic provides the number of days in a month, taking into account leap years, and all on one line.
![Camera and Video Control with HTML5]()
Client-side APIs on mobile and desktop devices are quickly providing the same APIs. Of course our mobile devices got access to some of these APIs first, but those APIs are slowly making their way to the desktop. One of those APIs is the getUserMedia API...
![From Webcam to Animated GIF: the Secret Behind chat.meatspac.es!]()
My team mate Edna Piranha is not only an awesome hacker; she's also a fantastic philosopher! Communication and online interactions is a subject that has kept her mind busy for a long time, and it has also resulted in a bunch of interesting experimental projects...
![Vertically Centering with Flexbox]()
Vertically centering sibling child contents is a task we've long needed on the web but has always seemed way more difficult than it should be. We initially used tables to accomplish the task, then moved on to CSS and JavaScript tricks because table layout was horribly...
![:valid, :invalid, and :required CSS Pseudo Classes]()
Let's be honest, form validation with JavaScript can be a real bitch. On a real basic level, however, it's not that bad. HTML5 has jumped in to some extent, providing a few attributes to allow us to mark fields as required or only valid if matching...
Thanks for your very helpful site! Love the tips.
Hi David,
PHP versions 4&5 also offer the
date("t")function which returns number of days in given month.michael is right:
$totDays = date("t",strtotime($year.'-'.$_month.'-01'));LOL.. Thanks Michael and Paskuale but I think you’re both missing the point! It’s nice to be told that we can get the days directly but the point about this function is that it’s an easily recognisable way to learn how ternary functions in PHP.
Very useful for noobies such as myself – thanks David :)
LOL.. Thanks Michael and Paskuale but I think you’re both missing the point! It’s nice to be told that we can get the days directly but the point about this function is that it’s an easily recognisable way to learn how ternary functions in PHP.
Very useful for noobies such as myself – thanks David :)