2010-04-22 6 views
8

Я смотрел на этот пост, и она близка к тому, что мне нужно: PHP - How to count 60 days from the add datePHP Расчет будущую дату путем добавления дней к переменной даты

Однако на этом посту, расчет производится путем добавления 60 дней до текущей даты. Что мне нужно сделать, так это рассчитать дату на основе даты переменной (, а не текущую дату).

Что-то вроде этого:

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

Кто знает, как это сделать?

Благодаря

+0

Какой формат даты в базе данных (временная метка)? –

ответ

26

Вы можете поставить что-то до "+10 дней" часть:

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

+1 узнал сегодня новую вещь. Благодарю. Вероятно, OP хочет преобразовать обратно в некоторую удобочитаемую строку. Итак, что-то вроде даты («Y-m-d», strtotime («2010-01-01 +10 дней»)); – zaf

+4

'strototime' берет временную метку как второй аргумент, который будет использоваться в качестве контрольной отметки времени для того, что вы поставили в качестве первого аргумента, поэтому, если OP получил временную метку из MySQL, он может так же хорошо выполнять' strtotime ('+ 60 дней ', $ timestampFromMySql); ' – Gordon

+0

совершенный - спасибо! – OneNerd

6

Использование 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

Следует упомянуть, что это доступно только для PHP 5.3.0. –

1

Я вижу вы retriving данные базы данных. Если вы используете MySQL вы можете сделать это на выборе:

Примера: вам нужна последняя дата таблицы и эту дата-7 дней

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

подмигнул легко использовать CurDate(), если вы хотите сегодняшнюю дату.

Если вам нужен динамический между тем, выбирает количество последних 7 дней:

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")) 

это будет получить расчетную дату в определенном формате.

0

Предположим, что текущая дата

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

И я могу добавить 10 дней в текущей даты следующим образом:

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

Вы должны смотреть в strtotime(). Я бы себе представить окончательный код будет выглядеть примерно так:

$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; 

Если вы используете PHP> = 5.2 Я настоятельно рекомендую вам использовать новый объект DateTime. Например, как показано ниже:

$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"); 
Смежные вопросы