Я ищу лучший способ эхо-числа в неделю. Сначала мне нужно проверить, на какой неделе. А затем повторите все даты недели в переменных.
Это то, что я получил:
//This Week Variable dates
$this_year = date('Y');
$this_week_no = date('W');
$this_week_mon = new DateTime();
$this_week_mon->setISODate($this_year,$this_week_no);
Как я могу подняться на один день?
$this_week_tue = $this_week_mon ++;
Вы можете использовать DateTime::modify()
:
$this_week_mon->modify('+1 day');
или DateTime::add()
который принимает объект DateInterval()
:
$this_week_mon->add(new DateInterval('P1D'));
Вы можете DatePeriod()
все дни недели с помощью DatePeriod()
:
$start = new DateTime();
$start->setISODate($this_year,$this_week_no);
$end = clone $start;
$end->modify('+1 week');
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $date) {
echo $date->format('N');
}
$this_week_mon->modify('+1 day');
Должно увеличивать $this_week_mon
на один день. Чтобы увеличить на большее, просто используйте дни;
$this_week_mon->modify('+27 day');
Увеличится на 27 дней.
$this_week_tue = $this_week_mon->modify('+1 day');
Переменные Bothe получают то же значение ..
$this_week_tue = $this_week_mon; $this_week_tue->modify('+1 day');
это работает?
$this_week_tue = clone $this_week_mon;
а затем$this_week_tue->add(new DateInterval('P1D'));
или посмотрите на новейшие изменения. Иadd()
иmodify()
изменяют существующий объект вместе с возвратом самого себя.