计算2个日期之间的周末

时间:2010-09-26 19:50:07

标签: php date

我正在写一个价格计算器,周末有特价。要做到这一点,我需要知道两个日期之间有多少个周末。

请注意,到周末,我的意思是如果他们想要周四到周二,周六和周日不是2天的周末费率,而是一个周末的单一费率。因此对于星期四 - >星期二,这将是一个周末的计数。

星期六 - >周六将是2个周末的计数,因为第一个星期六与下周六的周末不同。周日到周日也是如此,无论周末是完整周末还是部分周末,它都在计算周末。只要周末的某些部分或任何部分属于该日期范围,就算作一个周末。我能想到的最好的比喻是考虑周末持续48小时的一天,而不是过去24小时的2天。

那么,我如何确定php中两个日期之间有多少'整个或部分周末'?

1 个答案:

答案 0 :(得分:3)

我们必须从确定日期之间的天数开始。 这就像是

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

如果您说星期六 - >星期六= 2,那么除非我们的开始日是星期六,天数是7的乘积,否则周末的数量将是$ n / 7,否则,$ n / 7 + 1。所以我们可以从开始。

$n_weekends = ceil($n/7);

然后

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