Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 17:43   #1
silvestr
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 38
По умолчанию Как определить даты по номеру недели

День добрый!

никто не сталкивался с методами определения дат по номеру недели?

есть date('W'), нужно узать, первый и последний дни недели в формате date('Y m d')

поковырял функции date() & strtotime() но все равно не получается реализовать.

заранее спасибо
silvestr вне форума Ответить с цитированием
Старый 05.05.2011, 18:33   #2
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

Если год не известен, то решения нет (например, 5-неделя начинается с понедельника, 31 января, то в предыдущем году она начиналась с понедельника, 1 февраля)
Если год известен, то это будет как-то вот так
Код:
<?
$week_number = 18;
$year = 2011;

$first_day = date('d/m/Y', $week_number * 7 * 86400 + strtotime('1/1/' . $year) - date('w', strtotime('1/1/' . $year)) * 86400 + 86400);
$last_day = date('d/m/Y', ($week_number + 1) * 7 * 86400 + strtotime('1/1/' . $year) - date('w', strtotime('1/1/' . $year)) * 86400);
?>
Прошу прощения за возможные неточности - проверял на сервере в командной строке, с не-российским LOCALE, но направление явно должно быть куда-то вот сюда.

Последний раз редактировалось graymaster; 05.05.2011 в 18:59. Причина: Дополнение
graymaster вне форума Ответить с цитированием
Старый 05.05.2011, 20:25   #3
silvestr
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 38
По умолчанию

все идеально, спасибо!

теперь понял, что запутался на этапе определения дня года date('w')

Последний раз редактировалось silvestr; 05.05.2011 в 20:29.
silvestr вне форума Ответить с цитированием
Старый 19.10.2011, 15:46   #4
seynis
Новичок
Джуниор
 
Регистрация: 19.10.2011
Сообщений: 1
По умолчанию

Цитата:
Сообщение от graymaster Посмотреть сообщение
Если год не известен, то решения нет (например, 5-неделя начинается с понедельника, 31 января, то в предыдущем году она начиналась с понедельника, 1 февраля)
Если год известен, то это будет как-то вот так
Код:
<?
$week_number = 18;
$year = 2011;

$first_day = date('d/m/Y', $week_number * 7 * 86400 + strtotime('1/1/' . $year) - date('w', strtotime('1/1/' . $year)) * 86400 + 86400);
$last_day = date('d/m/Y', ($week_number + 1) * 7 * 86400 + strtotime('1/1/' . $year) - date('w', strtotime('1/1/' . $year)) * 86400);
?>


Прошу прощения за возможные неточности - проверял на сервере в командной строке, с не-российским LOCALE, но направление явно должно быть куда-то вот сюда.
Здравствуйте, вставил код - все заработало! Но как узнать другие дни недели ???? Очень прошу написать ответ....
seynis вне форума Ответить с цитированием
Старый 20.10.2011, 10:46   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
for ($i=1;$i<8;$i++)
  $day[$i]=date('d/m/Y', $week_number * 7 * 86400 + strtotime('1/1/' . $year) - date('w', strtotime('1/1/' . $year)) * 86400 + 86400*$i);
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод даты по году и номеру дня Fantom.as Общие вопросы C/C++ 4 04.12.2010 09:43
Извлечение из даты дня недели Kesha_pptp PHP 5 27.02.2010 22:21
Узнать месяц по номеру недели nowmax Общие вопросы Delphi 3 06.10.2009 09:07
Зависимость даты дней от дня недели valerij Microsoft Office Excel 16 18.06.2009 01:17
Дата понедельника по номеру недели. Excel Alexvolk Microsoft Office Excel 2 09.06.2009 01:30