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.
![Create a CSS Flipping Animation]()
CSS animations are a lot of fun; the beauty of them is that through many simple properties, you can create anything from an elegant fade in to a WTF-Pixar-would-be-proud effect. One CSS effect somewhere in between is the CSS flip effect, whereby there's...
![Page Visibility API]()
One event that's always been lacking within the document is a signal for when the user is looking at a given tab, or another tab. When does the user switch off our site to look at something else? When do they come back?
![Introducing MooTools Dotter]()
It's best practice to provide an indicator of some sort when performing an AJAX request or processing that takes place in the background. Since the dawn of AJAX, we've been using colorful spinners and imagery as indicators. While I enjoy those images, I am...
![Retrieve Google Analytics Visits and PageViews with PHP]()
Google Analytics is an outstanding website analytics tool that gives you way more information about your website than you probably need. Better to get more than you want than not enough, right? Anyways I check my website statistics more often than I should and...
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 :)