Onema
Onema

Reputation: 7602

PHP: Adding years to a timestamp

In PHP given a UTC timestamp I would like to add exactly N number of years. This should take into consideration leap years.

Thank you.

Upvotes: 20

Views: 40379

Answers (5)

GSite
GSite

Reputation: 954

If for any reason you already have the actual timestamp, you could just add 31536000 to it.

Upvotes: -1

asd
asd

Reputation: 11

$date    = "1998-08-14";

$newdate = strtotime ( '+2 years' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );

echo $newdate;

echos

2000-08-14

Upvotes: 1

George D.
George D.

Reputation: 1660

One thing you should consider when you do this.

$newTimestamp = strtotime('+2 years', $timestamp);

This adds up 2 years ( 720 or 721 days). In case you just want to keep the same day and month and add 2 extra years in the timestamp

you have to use mktime.

Example

$timestamp = mktime(0, 0, 0, $month, $day, $year+2);`

Upvotes: 1

Marc B
Marc B

Reputation: 360762

$date = new DateTime();
$date->add(new DateInterval('P10Y'));

adds 10 years (10Y) to "today". DateTime's only in PHP 5.3, though.

Upvotes: 9

Jeff Parker
Jeff Parker

Reputation: 7517

$newTimestamp = strtotime('+2 years', $timestamp);

Replace "+2 years" as required.

ref: http://php.net/manual/en/function.strtotime.php

Upvotes: 63

Related Questions