Intereting Posts
NumberFormatter :: SPELLOUT spellout-ordinal на русском и итальянском языках Разбить одну строку текста без каких-либо различимых точек останова в PHP Regex Php конвертирует скобки и фигурные скобки в такие ссылки, как StackOverflow Reddit PHP Связывание ссылок в контенте Как извлечь параметры URL на 404 Ошибка в PHP Переменные $ _POST не работают с $ _FILES и multipart / form-data Как я могу писать символы неанглийского языка, такие как арабские или персидские символы, в изображение? 3 разных равны log_errors_max_len = 1024 в php.ini, но журнал php продолжает расти Извлечение только даты из поля datetime (mysql) и назначение его переменной php Как заставить пользователей получать доступ к моей странице через HTTPS вместо HTTP? regexp в инструкции switch Загрузите много файлов на клиентской стороне и сжимайте их, затем загрузите файл сжатия на сервер Белый экран смерти – никаких ошибок в среде PHP / Vagrant (Yii) mime type validation в laravel 4 не работает

Получить дату следующего понедельника, вторник и т. Д.

Я хотел бы найти штамп даты в понедельник, вторник, среду и т. Д. Если этот день еще не наступил на этой неделе, мне хотелось бы, чтобы дата была на этой неделе, иначе, на следующей неделе. Благодаря!

См. strtotime()

 strtotime('next tuesday'); 

Вероятно, вы могли бы узнать, прошли ли вы в этот день, посмотрев номер недели:

 $nextTuesday = strtotime('next tuesday'); $weekNo = date('W'); $weekNoNextTuesday = date('W', $nextTuesday); if ($weekNoNextTuesday != $weekNo) { //past tuesday } 

Я знаю, что это немного поздний ответ, но я хотел бы добавить свой ответ для будущих ссылок.

 // Create a new DateTime object $date = new DateTime(); // Modify the date it contains $date->modify('next monday'); // Output echo $date->format('Ym-d'); 

Приятно, что вы также можете делать это с датами, отличными от сегодняшних:

 // Create a new DateTime object $date = new DateTime('2006-05-20'); // Modify the date it contains $date->modify('next monday'); // Output echo $date->format('Ym-d'); 

Чтобы сделать диапазон:

 $monday = new DateTime('monday'); // clone start date $endDate = clone $monday; // Add 7 days to start date $endDate->modify('+7 days'); // Increase with an interval of one day $dateInterval = new DateInterval('P1D'); $dateRange = new DatePeriod($monday, $dateInterval, $endDate); foreach ($dateRange as $day) { echo $day->format('Ym-d')."<br />"; } 

Рекомендации

Руководство PHP – DateTime

Руководство PHP – DateInterval

Руководство PHP – DatePeriod

Руководство PHP – клон

Вопрос помечен как «php», как сказал Том, способ сделать это будет выглядеть так:

 date('Ym-d', strtotime('next tuesday')); 

К сожалению, я не заметил тег PHP, однако кто-то может быть заинтересован в решении VB:

 Module Module1 Sub Main() Dim d As Date = Now Dim nextFriday As Date = DateAdd(DateInterval.Weekday, DayOfWeek.Friday - d.DayOfWeek(), Now) Console.WriteLine("next friday is " & nextFriday) Console.ReadLine() End Sub End Module 

Если я правильно вас понимаю, вам нужны даты следующих 7 дней?

Вы можете сделать следующее:

 for ($i = 0; $i < 7; $i++) echo date('d/m/y', time() + 86400 * $i); 

Проверьте документацию для функции даты для формата, в котором вы хотите.

если вы хотите найти понедельник, то «dayOfWeek» – 1, если во вторник будет 2 и так далее.

 var date=new Date(); getNextDayOfWeek(date, 2); 

// это для поиска следующего вторника

 function getNextDayOfWeek(date, dayOfWeek) { // Code to check that date and dayOfWeek are valid left as an exercise ;) var resultDate = new Date(date.getTime()); resultDate.setDate(date.getDate() + (7 + dayOfWeek - date.getDay()) % 7); return resultDate; } 

Надеюсь, это будет полезно для вас, спасибо

Документация PHP для time () показывает пример того, как вы можете получить дату на одну неделю. Вы можете изменить это, чтобы вместо этого перейти в цикл, который выполняет итерацию максимум 7 раз, каждый раз получает временную метку, получает соответствующую дату и получает день недели.