Я смотрел этот пост, и он близок к тому, что мне нужно: 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('Ymd 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("Ymd");
И я могу добавить 10 дней в текущую дату следующим образом:
$date_afte_10_days = date('Ym-d', strtotime("$today +10 days"));
Вам нужно будет изучить strtotime () . Я бы предположил, что ваш последний код будет выглядеть примерно так:
$dateVariable = strtotime('2017-01-29');//your date variable goes here $date_plus_60_days = date('Ym-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("Ymd");