回答
什麼是這樣的:
,你會得到輸出繼電器是:
string '2009-01-04' (length=10)
string '2009-01-11' (length=10)
string '2009-01-18' (length=10)
string '2009-01-25' (length=10)
string '2009-02-01' (length=10)
string '2009-02-08' (length=10)
string '2009-02-15' (length=10)
string '2009-02-22' (length=10)
對於每個週日的日期,以及:
int 8
對於數星期日
(我趕緊查了,似乎這些日子確實週日)
這段代碼的作用是:
- 第一,得到的第一個星期日的2009年01後的日期-01
- 然後,只要當前日期在2009-02-23之前,在每次迭代中迭代
- ,添加7 * 24 * 3600秒(每週7天,每天24小時,3600秒每小時)
注:我已更改日期的格式,使用YYYY-MM-DD,而不是DD-MM-YYY;它是通常使用的格式 - 因此,使用這個格式可能是一個好主意,確保strtotime能夠正常工作。 (不知道它會工作確定您的格式)
可以計算出有多少周這兩個日期之間都在,應該有一些用PHP日期處理庫,然後週日的數量將是週數,您仍然需要查看第一個日期是否爲星期日,最後日期是週日或不處理日期範圍的邊緣。
可以看到一些例子here。
這應該沒有任何循環的伎倆。
$start = mktime(0, 0, 0, $start_month, $start_day, $start_year);
$end = mktime(0, 0, 0, $end_month, $end_day, $end_year);
$days = ($end - $start)/86400;
$sundays = $days/7
// check if there are enough leftover days for one more sunday
if((localtime($start)[6]+($days % 7) > 6)
$sundays++;
在SO的某個地方看到了這個,我在我的項目中使用了它。無法追溯原始帖子。
// function to calculate number of given day within date range
function number_of_days($day, $start, $end){
$w = array(date('w', $start), date('w', $end));
return floor((date('z', $end) - date('z', $start))/7) + ($day == $w[0] || $day == $w[1] || $day < ((7 + $w[1] - $w[0]) % 7));
}
// define your dates
$start = mktime(0, 0, 0, 1, 16, 2010);
$end = mktime(0, 0, 0, 1, 25, 2010);
// display the count
echo number_of_days(0, $start, $end);
這不適用於多年,有時會給出錯誤的結果.. – ricricucit 2012-05-07 17:14:53
這是原始帖子:http://stackoverflow.com/a/1654008/157873(已經修復) – w35l3y 2013-01-29 13:51:42
$sunday=0;
for($i=1; $i<=date("t", strtotime("2012-09-01")); $i++) {
if(date("l", strtotime("2012-09-".$i)) === 'Sunday') {
$sunday++;
}
}
echo "no of Sunday=".$sunday;
你可以嗎用你的答案給出解釋? – 2012-09-28 12:28:21
- 1. 如何計算兩個日期之間有多少星期日?
- 2. VBA有多少個星期幾直到日期和VBA錯誤
- 3. 查找給定日期的星期幾
- 4. 兩個日期內有多少個星期
- 5. 獲取從給定日期星期一到星期五的星期日期
- 6. 找到第三個星期日每個月給兩個日期之間
- 7. 查找第一個星期一的日期指定的日期
- 8. jquery日期 - 確定一個星期日?
- 9. Javascript日期範圍內有多少個特定日期
- 10. 查找上個星期日的日期從當前日期
- 11. 找到特定日期的星期幾
- 12. 找到兩個給定日期
- 13. 獲取基於給定日期的星期一至星期日
- 14. 在給定日期(bash)後獲取下一個星期日
- 15. 計算下一個星期一到指定日期的日期
- 16. 從給定日期查找星期日的第一個匹配項
- 17. vb.net添加一個星期到給定的日期
- 18. Moment.js給予2個日期
- 19. Django的日期字段得到一個星期就像星期日星期一
- 20. C程序找到給定日期的星期幾
- 21. 找到兩個日期之間的星期日數,如果星期日來自兩個日期之間,然後減去星期日
- 22. 2個給定日期之間的打印日期
- 23. 給定日期的星期幾
- 24. 查找日期範圍目前一個星期,每星期
- 25. 2個日期
- 26. 查找給定日期的一個季度的結束日期
- 27. 查找第一個可用日期,給定SQL日期範圍
- 28. php一個星期前得到日期
- 29. 從給定日期開始計算一個星期的日期列表
- 30. 如何計算距給定日期X個星期幾的日期?
如果我($ dateMax)結束日是星期日,然後它會顯示不正確的答案:( – coderex 2009-08-24 11:06:12
如果要包括$ dateMax,並且不排除它,使用<=,而不是嚴格<在while循環的情況下可能會有所幫助 – 2009-08-24 11:12:51