2010-09-26 98 views
2

我正在寫週末特價的價格計算器。要做到這一點,我需要知道兩個日期之間有多少個週末。2個日期之間的週末計數

請注意,週末,如果他們想要星期四到星期二,星期六和星期日不是2天的週末價格,而是1個週末的單一價格。因此,對於週四 - >週二,這將是一個週末的計數。

對於星期六 - >星期六,這將是2個週末的計數,因爲第一個星期六不是和接下來的星期六一樣的週末。週日到週日也是如此,無論週末是週末還是週末,週末都是週末。只要週末的一些或任何部分落在該日期範圍內,就算爲1週末。我能想到的最好的比喻是考慮週末的一天持續48小時,而不是持續24小時。

那麼,我將如何確定在兩個日期之間有多少個「全部或部分週末」? PHP的?

+0

解釋在正則表達式:[星期六|星期日] {1,2} =一個週末 「計數?」 – 2010-09-26 19:52:59

+0

也許我應該提出第二個問題,問這是什麼意思,星期六+星期日實際上是一回事。星期六==星期日==星期六+星期日 – 2010-09-26 20:01:46

+0

所以它是一個週末的價格,而不是週末一天的價格。 – 2010-09-26 20:02:17

回答

3

我們必須從確定日期之間的天數開始。 這將是像

$n = floor((timestamp_end - timestamp_start)/86400); 

如果說Saturday->週六= 2,那麼,除非我們開始一天是星期六,天量的7產品,週末的人數將是$ n/7,否則,$ n/7 + 1。所以我們可以開始。

$n_weekends = ceil($n/7); 

然後

if (date("N", timestamp_start) == 6 && $n%7 == 0){ 
    $n_weekends++; 
} 
+0

這是否爲此帳戶開始一天是星期天?記得星期天 - >下週的星期天也算2個週末 – 2010-09-26 22:16:25

相關問題