To check whether a year is a leap year or not in PHP

In this article, you will learn different ways in PHP programming language to check whether a particular year is a Leap Year or not.

A leap year is 366 days old instead of 365 days because February is about 29 days longer than the common 28 days. These extra days occur in years which are multiples of four, i.e., 1992, 1996, 2000, 2004, 2008, 2012.

To check whether a year is a leap year or not in php


These are different ways to find out whether a year is a leap year or not.

Leap Year Program using checkdate() function

The checkdate() function is used to check a valid date in a month and year. It always returns a Boolean value.

Syntax of checkdate() function

bool checkdate(int $month, int $day, int $year);

In the checkdate() function, we have passed '2' in the first parameter, i.e., February month, '29' in the second parameter, i.e. 29 days, and the third parameter, $year is a variable that accepts year.

<?php
function checkLeapYear($year) {
    return checkdate(2, 29, $year);
}
echo checkLeapYear(2016) ? "2016 is a leap year." : "2016 is not a leap year. ";
echo '<br/>';
echo checkLeapYear(2017) ? "2017 is a leap year." : "2017 is not a leap year. ";
?>
Output of the above code-
2016 is a leap year.
2017 is not a leap year.




PHP leap year program using leap year logic

Most of us already know the logic to check for a leap year in the Gregorian calendar. These are the three criteria that must be met to identify leap years-

  • The year can be evenly divided by 4,
  • If the year can be evenly divided by 100, it is NOT a leap year, unless;
  • The year is also evenly divisible by 400. Then it is a leap year.

The following code implements this logic-

<?php

// function to test if leap year
function checkLeapYr($year) {
 $ret = (($year%400 == 0) || ($year%4 == 0 && $year%100 != 0)) ? true : false;
 return $ret;
}

echo checkLeapYr(2016) ? "2016 is a leap year." : "2016 is not a leap year. ";
echo '<br/>';
echo checkLeapYr(2017) ? "2017 is a leap year." : "2017 is not a leap year. ";
?>
Output of the above code-
2016 is a leap year.
2017 is not a leap year.

Code Explanation

$year%400 == 0 // If the year is evenly divisible by 400, it is a leap year.
$year%4 == 0 && $year%100 != 0 // a leap year is one that is evenly divisible by 4 but not by 100.





Check Leap Year using date() function

We can also check the leap year using the date() function. It has a format "L" that returns 1 if it's a leap year, and 0 if it is not. In the given code, we first determine whether the current year is a leap year, and then we loop through the specified years range and check.

<?php   

// check current year 
echo date('L')?" Leap year" : " Not a leap year";
echo '<br/>';

// check for the specified year range
for($i = 2010; $i < 2020; $i++) {
    echo $i, ': ', (date('L', strtotime("$i-01-01")) ? ' Leap year' : ' Not a leap year'), '<br />';
}
?>
Output of the above code-
Leap year
2010: Not a leap year
2011: Not a leap year
2012: Leap year
2013: Not a leap year
2014: Not a leap year
2015: Not a leap year
2016: Leap year
2017: Not a leap year
2018: Not a leap year
2019: Not a leap year




Related Articles

PHP code to send SMS to mobile from website
Remove duplicates from array PHP
PHP get IP address of visitor
Preventing Cross Site Request Forgeries(CSRF) in PHP
PHP code to send email using SMTP
Simple pagination in PHP
Simple PHP File Cache
PHP Connection and File Handling on FTP Server
CRUD operations in Python using MYSQL Connector
Windows commands to Create and Run first Django app
How to send emojis in email subject and body using PHP
PHP7.3 New Features, Functions and Deprecated Functions
Create pie chart using google api
How to display PDF file in PHP from database
How to read CSV file in PHP and store in MySQL
Create And Download Word Document in PHP
PHP SplFileObject Standard Library
Simple File Upload Script in PHP
Sending form data to an email using PHP




Read more articles


General Knowledge



Learn Popular Language