Добавить значение даты и времени

0

Я ищу лучший способ эхо-числа в неделю. Сначала мне нужно проверить, на какой неделе. А затем повторите все даты недели в переменных.

Это то, что я получил:

//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
date

2 ответа

1
Лучший ответ

Вы можете использовать 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');
}
  • 0
    Я использовал ваш второй пример, но у меня есть одна проблема. Переменные ..mon и ..tue получают одинаковое значение P1D ?!
  • 0
    @StoneStreet Сделайте это: $this_week_tue = clone $this_week_mon; а затем $this_week_tue->add(new DateInterval('P1D')); или посмотрите на новейшие изменения. И add() и modify() изменяют существующий объект вместе с возвратом самого себя.
Показать ещё 2 комментария
0
$this_week_mon->modify('+1 day');

Должно увеличивать $this_week_mon на один день. Чтобы увеличить на большее, просто используйте дни;

$this_week_mon->modify('+27 day');

Увеличится на 27 дней.

  • 0
    Если я использую это: $this_week_tue = $this_week_mon->modify('+1 day'); Переменные Bothe получают то же значение ..
  • 0
    $this_week_tue = $this_week_mon; $this_week_tue->modify('+1 day'); это работает?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню