Добавление дней к определенному дню

Многие примеры включают добавление дней по сей день. Но как это сделать, если у меня другой день торжества?

Например (не работает):

$day='2010-01-23';

// add 7 days to the date above
$NewDate= Date('$day', strtotime("+7 days"));
echo $NewDate;

Пример выше не работает. Как мне изменить день захода, добавив что-то еще вместо Даты?

Ответ 1

Для очень простого исправления, основанного на вашем коде:

$day='2010-01-23';

// add 7 days to the date above
$NewDate = date('Y-m-d', strtotime($day . " +7 days"));
echo $NewDate;

Если вы используете PHP 5.3+, вы можете использовать новые библиотеки DateTime, которые очень удобны:

$day = '2010-01-23';

// add 7 days to the date above
$NewDate = new DateTime($day);
$NewDate->add(new DateInterval('P7D');
echo $NewDate->format('Y-m-d');

Теперь я полностью переключился на использование DateTime, поскольку он очень мощный. Вы также можете легко указать временной пояс при создании экземпляра, т.е. new DateTime($time, new DateTimeZone('UTC')). Вы можете использовать методы add() и sub() для изменения даты с помощью объектов DateInterval. Здесь документация:

Ответ 2

$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day)));

Ответ 3

От php.com binupillai2003

<?php
/*
Add day/week/month to a particular date
@param1 yyyy-mm-dd
@param1 integer
by Binu V Pillai on 2009-12-17
*/

function addDate($date,$day)//add days
{
$sum = strtotime(date("Y-m-d", strtotime("$date")) . " +$day days");
$dateTo=date('Y-m-d',$sum);
return $dateTo;
}

?>