Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как получить начало каждой второй недели?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
livote
Отправлено: 06 Июля, 2018 - 17:34:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)

[+][+]


Если просто для начала недели, то использую

А тут непонятно.

(Отредактировано автором: 06 Июля, 2018 - 17:35:35)



-----
Не следует бояться зайти за пределы того, что считается возможным – ибо именно там находится успех.
 
 Top
suvidj3316
Отправлено: 10 Июля, 2018 - 07:31:54
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Так пробовал?

PHP:
скопировать код в буфер обмена
  1.  
  2. curYear = date('Y');
  3.         $startDate = new DateTime(date('Y-m-d', strtotime('mon jan' . $curYear)));
  4.         $startDate->add(new DateInterval('P7D'));
  5.     $period = new DatePeriod($startDate, new DateInterval('P14D'), new DateTime($curYear+1 . '-01-01') );
  6.     foreach ($period as $key => $value) {
  7.     echo $value->format('d-M-Y') . '<br />';
  8.     }
  9.  

(Отредактировано автором: 10 Июля, 2018 - 07:44:03)

 
 Top
Мелкий Супермодератор
Отправлено: 10 Июля, 2018 - 10:41:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




suvidj3316 пишет:
new DateTime(date('Y-m-d', strtotime('mon jan' . $curYear)));

У strtotime и конструктора datetime один и тот же парсер. Так что можно выкинуть лишнее:
PHP:
скопировать код в буфер обмена
  1. new DateTime('mon jan' . $curYear);


А вообще задача не очень понятная. Может быть нужно и что-то вроде:
PHP:
скопировать код в буфер обмена
  1. $date = new datetime('Monday this week');
  2. if ($date->format('W') % 2 == 1) {
  3.     $date->add(new DateInterval('P7D'));
  4.     }


-----
PostgreSQL DBA
 
 Top
Vladimir Kheifets
Отправлено: 10 Июля, 2018 - 11:07:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




livote пишет:
Если просто для начала недели, то использую

А тут непонятно.

Добрый день!
Дествительно "тут непонятно"... в смысле "машины времени"....
Попробуйте два варианта: задётся желаемое количество понедельников начиня с текущего или задаётся ограничивающая дата
Спойлер (Отобразить)
Удачи!

(Отредактировано автором: 10 Июля, 2018 - 11:09:46)

 
 Top
suvidj3316
Отправлено: 10 Июля, 2018 - 15:15:21
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Также - если нужно отображение месяца на русском

PHP:
скопировать код в буфер обмена
  1.  
  2. formatter = new IntlDateFormatter('ru_RU', IntlDateFormatter::SHORT, IntlDateFormatter::SHORT);
  3.  $formatter->setPattern('E d MMMM yyyy');
  4.         $curYear = date('Y');
  5.         $startDate = new DateTime('mon jan' . $curYear);
  6.         $startDate->add(new DateInterval('P7D'));
  7.     $period = new DatePeriod($startDate, new DateInterval('P14D'), new DateTime($curYear+1 . '-01-01') );
  8.     foreach ($period as $key => $value) {
  9.     echo $formatter->format($value) . '<br />';
  10.     }
  11.  

(Отредактировано автором: 10 Июля, 2018 - 15:16:10)

 
 Top
haveFun
Отправлено: 13 Июля, 2018 - 17:53:08
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




при создании нового объекта, добавляйте обратный слеш.
(new \DateTime())
так, на всякий случай
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB