2012-09-20 5 views
1

달과 평일이 주어지면 모든 월요일, 화요일, 수요일, 목요일, 금요일의 요일 수를 검색 할 수있는 함수를 작성해야합니다.PHP : 평일에 주어진 월의 숫자를 얻으려면

의 내가 이번 달에 기능을 제공한다고 가정 해 봅시다 년 9 월 2012 평일 숫자 1이 기능은 검색해야 모두 2012 년 9 월 좋은 월요일 : 3, 10, 17,

(24)이 나 평일 있다는 점 유의 하시길 바랍니다 번호 1은 월요일, 숫자 2는 화요일, 3은 수요일, 4 목요일 및 5 금요일입니다.

지금까지 해본 결과 : 오늘 날짜가 주어진 요일의 첫날 (아래 함수 게시)입니다. 그러나 나는 여기서 간단한 방법으로 따라하는 법을 모르지만, 나는 그것에 많은 시간을 할애했으며, 그것을 할 수있는 더 좋은 방법이 있다고 생각합니다. 어떻게 보여 주시겠습니까? 당신을 위해

function getFirstDayOfWeek($date) { 
    $getdate = getdate($date); 

    // How many days ahead monday are we? 
    switch ($getdate['wday']) { 
     case 0: // we are on sunday 
      $days = 6; 
      break; 

     default: // any other day 
      $days = $getdate['wday']-1; 
      break; 
    } 

    $seconds = $days*24*60*60; 
    $monday = date($getdate[0])-$seconds; 

    return $monday; 
} 

감사 톤

답변

2

아주 똑똑하지,하지만 것 일 :

// sept. 2012 
$month = 9; 

// loop through month days 
for ($i = 1; $i <= 31; $i++) { 

    // given month timestamp 
    $timestamp = mktime(0, 0, 0, $month, $i, 2012); 

    // to be sure we have not gone to the next month 
    if (date("n", $timestamp) == $month) { 

     // current day in the loop 
     $day = date("N", $timestamp); 

     // if this is between 1 to 5, weekdays, 1 = Monday, 5 = Friday 
     if ($day == 1 OR $day <= 5) { 

      // write it down now 
      $days[$day][] = date("j", $timestamp); 
     } 
    } 
} 

// to see if it works :) 
print_r($days); 
+0

whoah! 이것은 훌륭하다!! 덕분에 – user523129

+0

! 그것이 효과가 있다는 것을 듣고 행복하게! :) – Mahdi