2009-12-17 11 views
11

Muchos ejemplos son acerca de agregar días a este día. Pero, ¿cómo hacerlo, si tengo un día de estrella diferente?Agregando días al día específico

Por ejemplo (no funciona):

$day='2010-01-23'; 

// add 7 days to the date above 
$NewDate= Date('$day', strtotime("+7 days")); 
echo $NewDate; 

Ejemplo anterior no funciona. ¿Cómo debería cambiar el día de inicio colocando algo más en el lugar de Fecha?

+2

es '$ día' un error tipográfico? no ajusta las variables entre comillas – TravisO

Respuesta

29

para una solución muy básica sobre la base de su código:

$day='2010-01-23'; 

// add 7 days to the date above 
$NewDate = date('Y-m-d', strtotime($day . " +7 days")); 
echo $NewDate; 

Si está usando PHP 5.3+, puede utilizar la nueva DateTime libs que son muy útiles:

$day = '2010-01-23'; 

// add 7 days to the date above 
$NewDate = new DateTime($day); 
$NewDate->add(new DateInterval('P7D'); 
echo $NewDate->format('Y-m-d'); 

Tengo cambié por completo al usar DateTime ahora, ya que es muy poderoso. También puede especificar fácilmente la zona horaria al crear instancias, es decir, new DateTime($time, new DateTimeZone('UTC')). Puede usar los métodos add() y sub() para cambiar la fecha con los objetos DateInterval. Aquí está la documentación:

+0

$ NewDate-> add (new DateInterval ('P7D'); - necesitas agregar un ')' adicional al final aquí :) – mmvsbg

1

De php.com binupillai2003

<?php 
/* 
Add day/week/month to a particular date 
@param1 yyyy-mm-dd 
@param1 integer 
by Binu V Pillai on 2009-12-17 
*/ 

function addDate($date,$day)//add days 
{ 
$sum = strtotime(date("Y-m-d", strtotime("$date")) . " +$day days"); 
$dateTo=date('Y-m-d',$sum); 
return $dateTo; 
} 

?> 
+2

Si bien "$ date" puede funcionar técnicamente, es una sintaxis pobre, solo di $ date – TravisO

9
$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day))); 
+3

Esto solo dará como resultado segundos desde la época de Unix. –

Cuestiones relacionadas