PHP Расчет будущей даты путем добавления дней к переменной дате - PullRequest
8 голосов
/ 22 апреля 2010

Я просматривал этот пост, и он близок к тому, что мне нужно: PHP - Как считать 60 дней с даты добавления

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

Примерно так:

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

Кто-нибудь знает, как это сделать?

Спасибо

Ответы [ 6 ]

27 голосов
/ 22 апреля 2010

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

strtotime("2010-01-01 +10 days");
6 голосов
/ 22 апреля 2010

Использовать 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'));
2 голосов
/ 10 февраля 2017

Вам нужно заглянуть в 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");
2 голосов
/ 24 ноября 2014
date('Y-m-d H:i:s', strtotime("2014-11-24 06:33:39" +35 days"))

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

1 голос
/ 20 декабря 2012

Я вижу, вы получаете данные из базы данных. Если вы используете mysql, вы можете сделать это на select:

Пример: вам нужна последняя дата таблицы и эта дата - 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"
0 голосов
/ 04 января 2017

Предположим, сегодняшняя дата

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

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

$date_afte_10_days = date('Y-m-d', strtotime("$today +10 days"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...