2014-01-27 3 views
-1

Мой предыдущий вопрос: how-to-find-current-day-no-in-month-in-phpКак проверить, что этот день последний день месяца в php?

Теперь у меня другая проблема. Предположим, я знаю, что это monday является 4th monday of the current month. Теперь, как проверить, что this monday is also the last monday of the current month?

exa:1 
date: 27-01-2014 

Используя приведенный ниже код, я получаю имя и номер дня:

day: monday 
day no :4th 

Это четвёртый понедельник января и это также последний понедельник января. Как это проверить?

exa:2 
date: 20-01-2014 
day: monday 
day no :3rd 

Здесь this monday is 3rd monday of january but not last monday of january.

Так, короче говоря, когда я получил номер дня, то, как проверить, что номер дня в прошлом или нет?

code:

$t=date('d-m-Y'); 
$dayName = strtolower(date("D",strtotime($t))); 
$dayNum = strtolower(date("d",strtotime($t))); 
$dayno = floor(($dayNum - 1)/7) + 1 
+0

даты ("т", указываете ей (0, 0, 0, 7, 1, 2000)); выйдет в последний день месяца –

+0

нет ... я не хочу последний день месяца. Я пытаюсь проверить, что этот день последний день месяца или нет? – DS9

+0

@ DS9 проверить этот пост, вы получите эту идею. http://stackoverflow.com/questions/1686724/php-last-day-of-the-month – JazyK

ответ

2

Просто добавьте 7 дней (вы все еще есть понедельник) на дату у вас есть, и проверить, если он находится в том же месяце.

+1

Если мы проверяем последний день, почему бы просто не добавить «один день»? – christopher

+0

Прочтите вопрос, Кристофер. Нам нужно проверить, что это последний понедельник в месяц, а не в последний день месяца. –

+0

@christopher да, это смущает вопрос, но я разбирал его как «последний день», как это », поэтому« это последний вторник в этом месяце ». – Nanne

0

Полное решение заключается в следующем. Благодаря @Oliver M Grech и @Nanne.

  $t=date('d-m-Y'); 
      $day = strtolower(date("D",strtotime($t))); 
      $month = strtolower(date("m",strtotime($t))); 
      $dayNum = strtolower(date("d",strtotime($t))); 
      $weekno = floor(($dayNum - 1)/7) + 1; 

      if($weekno=="4" or $weekno=="5") 
      { 
       $Date = date("d-m-Y"); 
       $new_month = date('m', strtotime($Date. ' + 7 days')); 
       if($new_month != $month) 
       { 
        echo "This ".$day." is last day of month." ; 
       } 
      } 
0

Самый быстрый способ проверить, если сегодня последний месяц я хотел бы предложить следующее

if(gmdate('t') == gmdate('d')){ 
    echo 'Last day of the month.'; 
} 
Смежные вопросы