2010-04-22 12 views
8

yo estaba buscando en este post, y que está cerca de lo que necesito: PHP - How to count 60 days from the add datePHP El cálculo fecha futura mediante la adición de días a una fecha variable de

Sin embargo, en ese puesto, el cálculo se realiza mediante la adición de 60 días a la fecha actual. Lo que necesito hacer es calcular la fecha basada en una fecha variable (y no en la fecha actual).

Algo como esto:

$my_date = $some_row_from_a_database; 
$date_plus_10_days = ???; 

Alguien sabe cómo hacer eso?

Gracias

+0

¿Cuál es el formato de fecha en la base de datos (marca de tiempo)? –

Respuesta

26

Usted puede poner algo antes de la parte "+10 días":

strtotime("2010-01-01 +10 days"); 
+4

+1 aprendió algo nuevo hoy. Gracias. Probablemente, el OP quiere convertir de nuevo a una cadena de lectura humana. Por lo tanto, algo así como la fecha ('Y-m-d', strtotime ("2010-01-01 +10 días")); – zaf

+4

'strototime' toma una marca de tiempo como el segundo argumento que se utilizará como la marca de tiempo de referencia para lo que pone como primer argumento, por lo que si el OP obtuvo una marca de tiempo de MySQL, puede hacer' strtotime ('+ 60 days ', $ timestampFromMySql); ' – Gordon

+0

perfecto - gracias! – OneNerd

6

Uso DATE_ADD

http://www.php.net/manual/en/datetime.add.php

$my_date = new DateTime($some_row_from_a_database); 
$date_plus_10_days = date_add($my_date, new DateInterval('P10D')); 
+6

Debe mencionar que esto solo está disponible desde PHP 5.3.0 en adelante. –

1

Veo que estás retriving datos de una base de datos Si está utilizando MySQL puede hacerlo en el selecto:

Ejemplo: se necesita la última fecha de la mesa y esta fecha-7 días

select max(datefield) as ultimaf, DATE_SUB(max(datefield),INTERVAL 7 DAY) as last7 
from table 

manera facil uso CURDATE() si quieres la fecha de hoy.

Si necesita una dinámica entre que selecciona el recuento de los últimos 7 días:

select count(*) from table 
where DATE_SUB(CURDATE(),INTERVAL 7 DAY)<=datefield" 
2
date('Y-m-d H:i:s', strtotime("2014-11-24 06:33:39" +35 days")) 

Esto hará que la fecha calculada en el formato definido.

0

Supongamos que la fecha de hoy es

date_default_timezone_set('Asia/Calcutta'); 
$today=date("Y-m-d"); 

y puedo añadir 10 días en la fecha actual de la siguiente manera:

$date_afte_10_days = date('Y-m-d', strtotime("$today +10 days")); 
0

Usted tendrá que mirar en strtotime(). Me imagino que su código final sería algo como esto:

$dateVariable  = strtotime('2017-01-29');//your date variable goes here 
$date_plus_60_days = date('Y-m-d', strtotime('+ 60 days', $dateVariable)); 
echo $date_plus_60_days; 

Si está usando PHP> = 5.2 Me sugieren fuertemente que utilice el nuevo objeto DateTime. Por ejemplo, como a continuación:

$date_plus_60_days = new DateTime("2006-12-12"); 
$date_plus_60_days->modify("+60 days"); 
echo $date_plus_60_days->format("Y-m-d"); 
Cuestiones relacionadas