Ответ 1
Вы можете поставить что-то перед частью "+10 дней":
strtotime("2010-01-01 +10 days");
Я смотрел этот пост, и он близок к тому, что мне нужно: PHP - Как подсчитать 60 дней с даты добавления
Однако в этом сообщении расчет выполняется путем добавления 60 дней к текущей дате. Мне нужно рассчитать дату на основе даты переменной (а не текущей даты).
Что-то вроде этого:
$my_date = $some_row_from_a_database;
$date_plus_10_days = ???;
Кто-нибудь знает, как это сделать?
Спасибо
Вы можете поставить что-то перед частью "+10 дней":
strtotime("2010-01-01 +10 days");
Использовать 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'));
date('Y-m-d H:i:s', strtotime("2014-11-24 06:33:39" +35 days"))
это даст расчетную дату в определенном формате.
Я вижу, что вы извлекаете данные из базы данных. Если вы используете 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"
Предположим, что сегодня дата
date_default_timezone_set('Asia/Calcutta');
$today=date("Y-m-d");
И я могу добавить 10 дней в текущую дату следующим образом:
$date_afte_10_days = date('Y-m-d', strtotime("$today +10 days"));
Вам нужно будет изучить 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");