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

This article contains PHP code to check whether a particular year is a **Leap Year** or Not. A leap year has **366 days** instead of **365 days** because February is about 29 days rather than the common 28 days. These extra days occur in years which are multiples of four, i.e, 1992, 1996, 2000, 2004, 2008, 2012.

There are two ways to find out a year is a leap year or not.

## Method 1

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);`

The following code checks for a particular year by using **checkdate()** function. 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.
```

## Method 2

Most of us already know the logic to check for a leap year in a Gregorian calendar. These are the three criteria that must be taken 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 evenly divisible by 400, then it is a leap year

$year%4 == 0 && $year%100 != 0 // if evenly divisible by 4 but not by 100, then it is a leap year.

How to get current directory, filename and code line number in PHP

Retrieve Data From Database Without Page refresh using AJAX, PHP and Javascript