2016-09-13 6 views
1

Мне нужно найти первую, вторую и т. Д., Неделю в месяц.
На этой неделе мне нужно найти понедельник/вторник или еще.
Я использую рамки Laravel и PHP,Как найти дату со значения недели месяца в laravel ..?

Теперь я собираюсь найти в понедельник первой недели этого месяца сентября и
мой код,

date('Y-m-d', strtotime('+0 week, Monday', strtotime('first day of September 2016')));   

Это правильный путь или не..?
Здесь нет даты или 5-9-2016 ..?

ответ

1

Это намного проще, чем вы думаете, используя strtotime. Я верю, что последние несколько - это то, что вам нужно. Вы должны быть осторожны, хотя некоторые недели в отдельные дни могут не иметь определенного дня. Например, 1-я неделя 16 ноября не имеет понедельника.

<?php 

echo date("Y-m-d",strtotime('first monday September 2016')); 
// 2016-09-05 (first Monday of september '16) 

echo date("Y-m-d",strtotime('Tuesday +1 week December 2016')); 
// 2016-12-06 (first Tuesday of December '16) 

echo date("Y-m-d",strtotime('Friday November 2016')); 
// 2016-11-04 (first Friday of November '16') 

echo date("Y-m-d",strtotime('fourth Monday September 2016')); 
// 2016-09-05 (first Monday of september '16) 

echo date("Y-m-d",strtotime('Tuesday December 2016')); 
// 2016-12-06 (first Tuesday of December '16) 

echo date("Y-m-d",strtotime('third Friday November 2016')); 
// 2016-11-04 (first Friday of November '16') 

echo date("Y-m-d",strtotime('Tuesday +1 week December 2016')); 
// 2016-12-06 (Tuesday of the second week of December '16) 

echo date("Y-m-d",strtotime('Friday +2 week November 2016')); 
// 2016-11-04 (Friday of the third week of November '16') 
?> 

Без «+ п» в неделю последние 2 примера, это будет возвращать первый соответствующий день в течение первой недели. Добавление +1 week делает вторую неделю, на которую он выбирает день. Добавление +2 week делает его третьей неделей, которую он выбирает, и т. Д.

Но, как я уже упоминал выше, он не является надежным. Например:

echo date("Y-m-d",strtotime('Friday +4 week November 2016')) 
// 2016-12-02 Although there are 5 calendar weeks in November '16, the 5th 
// week does not have a Friday. So you're getting December's Friday, because 
// you're simply adding weeks to a day. 
+0

Ваш ответ верный. Но мне нужна ясность 5-9-2016 => Понедельник - первая неделя месяца или нет. Пожалуйста, помогите мне из этого. –

+0

См. Edit. особенно последние несколько примеров –

+0

После вашего ответа я пробую эту дату («Y-m-d», strtotime («первый понедельник, сентябрь 2016 года»)); и получить «2016-09-05» Но нужна ясность - это первая неделя сентября месяца.? и этот понедельник - первый день недели сентябрьского месяца.? Пожалуйста, помогите мне. –

1

Я высокоочищенный рекомендую вам прочитать о Carbon, речь идет по умолчанию с Laravel и то, что используется internaly дела с датами. Также очень удобно и удобно.

+0

Благодарим вас за поддержку по этой теме. –

Смежные вопросы