Checking For Leap Year Using PHP
One part of programming that seems pretty static is dealing with dates. The calendar is a set system of rules that doesn't look to change. The only part of the calendar that can be variable is a leap year, which changes every four years (obviously).
Using pure PHP ternary logic, much like the PHP Function - Calculating Days In A Month, I posted a few weeks back, you can check to see if a year is a leap year.
The Code
function is_leap_year($year) {
return ((($year % 4) == 0) && ((($year % 100) != 0) || (($year % 400) == 0)));
}
![5 Ways that CSS and JavaScript Interact That You May Not Know About]()
CSS and JavaScript: the lines seemingly get blurred by each browser release. They have always done a very different job but in the end they are both front-end technologies so they need do need to work closely. We have our .js files and our .css, but...
![Send Text Messages with PHP]()
Kids these days, I tell ya. All they care about is the technology. The video games. The bottled water. Oh, and the texting, always the texting. Back in my day, all we had was...OK, I had all of these things too. But I still don't get...
![MooTools Text Flipping]()
There are lots and lots of useless but fun JavaScript techniques out there. This is another one of them.
One popular April Fools joke I quickly got tired of was websites transforming their text upside down. I found a jQuery Plugin by Paul...
![Chris Coyier’s Favorite CodePen Demos II]()
Hey everyone! Before we get started, I just want to say it's damn hard to pick this few favorites on CodePen. Not because, as a co-founder of CodePen, I feel like a dad picking which kid he likes best (RUDE). But because there is just so...
Placing a function call as an argument default will result in a fatal error. Also, give this version a shot:
function is_leap_year( $year = NULL ) { if_numeric( $year ) || $year = date( 'Y' ); return checkdate( 2, 29, ( int ) $year ); }Whoops, small typo… if_numeric( $year ) should be is_numeric( $year )… :x
Better yet, use
date('L')which returns1if it’s a leap year,0if it isn’t.I do agree with tamlyn, why you dont use date function??
It can makes a load fasting right?
date(‘L’) is way better because leap year is not every 4 years.
Date("L")only tell you in a given year, default is the year today.If you need to know whether previous or next year is a leap, you must reset the date.
It could affect the system.
Indra, you can always pass the timestamp as second parameter to date function:
echo date('L', mktime(1, 1, 1, 1, 1, 2005));I think this is a better example relating to the function. Also provided example for anyone looking for true/false as I was in this instance.
/* for true or false */ function is_leap_year($year) { return ( date ('L', mktime(1,1,1,1,1, $year) ) === 1 ) ? true : false; } /*for 0 or 1 Whether it's a leap year: 1 if it is a leap year, 0 otherwise. */ function is_leap_year($year) { return date ('L', mktime(1,1,1,1,1, $year) ); }<?php $day = ""; for($i=0; $i<4; $i++) { $day = date("d", mktime(0, 0, 0, 2, 29, date("Y")+$i)); if($day == 29) { $year = date("Y")+$i; break; } } echo "The next leap year is 29th February $year"; ?>code of Habibur Rahaman will not work for example for the year 1897, because 1900 is not leap year.