2009-12-06 23 views

Respuesta

24
<?php 
$timestamp = strtotime('+6 years'); 
echo date('Y-m-d H:i:s', $timestamp); 
?> 
+0

¿Es así como lo haces en PHP? – ChaosPandion

+4

Sí, ¿qué esperabas? –

+0

Supongo que estoy echado a perder por el objeto .NET DateTime. – ChaosPandion

1
strtotime('+6 years'); 

puede pasar que la marca de tiempo en algo así como strftime(); strtotime

1

Sin dejar de reír el comentario de ChaosPandion :)

echo strtotime ("+6 years"); 

debe hacer el truco.

-1

189302400 es el número de segundos en 6 años.

Obtenga la marca de tiempo actual, luego agregue 189302400 y luego convierta la marca de tiempo en una cadena de fecha.

+2

+1 por omitir el código necesario y enfocarse en las marcas de tiempo –

+3

¿Incluye ese período de seis años 0, 1 o 2 años bisiestos? (1700, 1800, 1900, 2100, 2200, etc., no son años bisiestos). –

+3

Bueno en teoría, pero está roto en la práctica ya que no cuenta adecuadamente para los años bisiestos. 1997-2003 necesita restar un día desde 2000 no fue un año bisiesto y 2003-2009 necesita agregar un día ya que tanto 2004 como 2008 fueron años bisiestos. Eso incluso asume que planeó por lo menos un año bisiesto dentro de los 6 años. –

1

Su descripción no es muy preciso, pero echo date("Y-m-d", strtotime("+6 years")); podría ser lo que necesita ...

2
date_default_timezone_set('America/Los_Angeles'); //required if not set 
$date = new DateTime('1/1/1981'); 
$date->modify('+60 year'); 
echo $date->format('Y-m-d'); 

encima no se ve afectada por el tiempo Unix gama sello de fecha (antes de 1970 y después de 2038).

También puede comparar directamente las fechas con los operadores de comparación directamente, sin necesidad de convertirlas a Sello de tiempo.

Requiere PHP 5.3

+0

+1 para una solución orientada a objetos reales – Cesc

Cuestiones relacionadas