2011-03-02 19 views

Respuesta

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

Reemplace "+2 años" según corresponda.

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

+0

@NullUserException: Parece bastante obvio que desea reemplazar '2' con 'n', y que '$ timestamp' contiene el correcto marca de tiempo En ningún lugar dice en el código de Jeff que '$ timestamp' = ahora. –

+0

Es un ejemplo ... con la condición, "reemplace +2 años como se requiera": P –

+0

Habría +1 pero cerré los votos. :) –

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

añade 10 años (10Y) a "hoy". Sin embargo, DateTime solo está en PHP 5.3.

+0

+1, ¡no sabía eso! En una nota al margen, ¿conoces algún buen texto/libro/tutorial sobre las cosas nuevas para v5.3? Excepto el manual oficial. – Czechnology

+0

No fuera de uso. Sin embargo, el sitio php tiene un buen tutorial de registro de cambios/migración. Tiendo a evitar los libros de PHP, porque están terriblemente desactualizados, mal escritos (por ejemplo, te llevan a escribir un código inseguro muy malo), o simplemente muy mal. –

+0

No es del todo correcto: DateTime está en 5.2 y solo se agregó DateInterval para 5.3. – tobyS

1

Una cosa que debes tener en cuenta cuando hagas esto.

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

Esto suma 2 años (720 o 721 días). En caso de que solo desee conservar el mismo día y mes y agregar 2 años adicionales en la marca de tiempo

, debe usar mktime.

Ejemplo

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

Hoy en día debería usar una biblioteca como Carbon para hacer todo este trabajo de tiempo/fecha en php. Hace una alegría trabajar con las fechas. –

0
$date = "1998-08-14"; 

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

echo $newdate; 

ecos

2000-08-14 
Cuestiones relacionadas