2015-09-15 126 views
10

我想將一週中的第一天設置爲星期四(不是星期天或星期一),因爲這是公司的截止日期。如何在PHP中將「第一天的第一天」設置爲星期四

我已經有一個代碼來確定一個日期的當前週數,但它在週日或週一開始。

如何修改這些以符合我的偏好?

function findweek($date) { 
    $monthstart=date("N",strtotime(date("n/l/Y",strtotime($date)))); 
    $newdate=(date("j",strtotime($date))+$monthstart)/7; 
    $ddate=floor($newdate); 
    if($ddate != $date) { 
     $ddate++; 
    } 
    return $ddate; 
} 
+0

我正在收集你的意見..........正好你想要在我們公司工作的 –

+0

你的工作日星期四開始計數是星期四不是星期日或星期一,所以我想開始每週的計數每個月的星期四。 –

+0

@RaydenBlack看看這是否可以幫助你http://codepad.org/tI0nMQPo你可能需要調整日期時間格式 – Shehary

回答

1

這應該有效。

function findweek($date, $type = "l") { 
    $time = strtotime($date); 
    return date($type, mktime(0, 0, 0, date("m", $time) , date("d", $time)-date("d", $time)+1, date("Y", $time))); 
} 

echo findweek('2015-09-16'); 
+0

我想要的結果是將星期幾的第一天設置爲星期四而不是查找星期。 –

1

http://php.net/manual/en/datetime.formats.relative.php說,作爲PHP版本23年6月5日,7.0.8「周始終週一開始。以前,週日也將被考慮入手一個星期。」也就是說,是你的問題根據當天是星期四還是星期四之前返回的週數可能不正確?也許嘗試是這樣的:

$date = new DateTime(); 
$week = intval($date->format('W')); 
$day = intval($date->format('N')); 
echo $day < 4 ? $week-1 : $week; 

如果減去1不是問題的答案,你可以玩的加法/減法,比較你知道,直到你找到正確的公式是真實的實際答案的結果。希望這可以幫助!

相關問題