2012-09-19 78 views
0

我可以在第三個星期三用strtotime(「星期三+星期」)還是需要像這樣的複雜代碼:http://www.danielkassner.com/2010/05/22/get-date-by-position-ie-third-wednesday-of-january按位置獲取日期(即1月的第三個星期三)?

+0

考查[日期時間相對格式(http://www.php.net/manual/en/datetime.formats.relative.php) –

+0

你的意思是第三個星期三?從今天開始? – Tchoupi

+0

試試我的答案,你需要本月的第三個星期三? –

回答

1

試試這個: -

/** 
* int nth_day_of_month(int $nbr, str $day, int $mon, int $year) 
* $nbr = nth weekday to find 
* $day = full name of weekday, e.g. "Saturday" 
* $mon = month 1 - 12 
* $year = year 1970, 2007, etc. 
* returns UNIX time 
*/ 
function nth_day_of_month($nbr, $day, $mon, $year) 
{ 
    $date = mktime(0, 0, 0, $mon, 0, $year); 
    if($date == 0) 
    { 
     user_error(__FUNCTION__."(): Invalid month or year", E_USER_WARNING); 
     return(FALSE); 
    } 
    $day = ucfirst(strtolower($day)); 
    if(!in_array($day, array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 
     'Thursday', 'Friday', 'Saturday'))) 
    { 
     user_error(__FUNCTION__."(): Invalid day", E_USER_WARNING); 
     return(FALSE); 
    } 
    for($week = 1; $week <= $nbr; $week++) 
    { 
     $date = strtotime("next $day", $date); 
    } 
    return($date); 
} 


$d = nth_day_of_month($week_no,$curr_week_day, $fmonth, $fyear); 

echo date('d-m-Y',$d)."<br />"; 
+0

這是正確的嗎? for循環不使用$ week變量? – Bytemain

相關問題