Много примеров о добавляющих днях по сей день. Но как сделать это, если у меня есть другой стартовый день?
Например (Не работает):
$day='2010-01-23';
// add 7 days to the date above
$NewDate= Date('$day', strtotime("+7 days"));
echo $NewDate;
Пример выше не работает. Как я должен изменить стартовый день путем помещения чего-то еще вместо Даты?
Для очень простого исправления на основе вашего кода:
$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. Вот документация:
Из 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;
}
?>
$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day)));