Добавьте количество дней к дате

Я хочу добавить количество дней к текущей дате: Я использую следующий код:

$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");

Но вместо того, чтобы получить надлежащую дату я получаю это: 2592000

Предложите.

119
задан Pankaj 20 May 2016 в 10:38
поделиться

4 ответа

Это должно быть

echo date('Y-m-d', strtotime("+30 days"));

strtotime

ожидает получить строку, содержащую формат даты на английском языке (США), и попытается преобразовать этот формат в метку времени Unix (количество секунд с 1 января 1970 00:00:00 UTC) относительно отметки времени, указанной в now, или текущего времени, если now не указан.

while date

Возвращает строку, отформатированную в соответствии с заданной строкой формата, используя заданную целочисленную метку времени или текущее время, если метка времени не указана.

См. Страницы руководства для

и их сигнатуры функций.

241
ответ дан 24 November 2019 в 01:42
поделиться

Вы можете использовать класс DateTime, встроенный в PHP. У него есть метод под названием "add", и то, как он используется, подробно продемонстрирован в руководстве: http://www.php.net/manual/en/datetime.add.php

Однако для этого требуется PHP. 5.3.0.

5
ответ дан 24 November 2019 в 01:42
поделиться

Имейте в виду, что изменение перевода часов из-за перехода на летнее время может создать некоторые проблемы при расчете только дней.

Вот небольшая функция php, которая позаботится об этом:

function add_days($date, $days) {
    $timeStamp = strtotime(date('Y-m-d',$date));
    $timeStamp+= 24 * 60 * 60 * $days;

    // ...clock change....
    if (date("I",$timeStamp) != date("I",$date)) {
        if (date("I",$date)=="1") { 
            // summer to winter, add an hour
            $timeStamp+= 60 * 60; 
        } else {
            // summer to winter, deduct an hour
            $timeStamp-= 60 * 60;           
        } // if
    } // if
    $cur_dat = mktime(0, 0, 0, 
                      date("n", $timeStamp), 
                      date("j", $timeStamp), 
                      date("Y", $timeStamp)
                     ); 
    return $cur_dat;
}
7
ответ дан 24 November 2019 в 01:42
поделиться

Вы также можете попробовать:

$date->modify("+30 days");

7
ответ дан 24 November 2019 в 01:42
поделиться