Reputation: 7602
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
Reputation: 954
If for any reason you already have the actual timestamp, you could just add 31536000 to it.
Upvotes: -1
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
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
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
Reputation: 7517
$newTimestamp = strtotime('+2 years', $timestamp);
Replace "+2 years" as required.
ref: http://php.net/manual/en/function.strtotime.php
Upvotes: 63