我正在写一个价格计算器,周末有特价。要做到这一点,我需要知道两个日期之间有多少个周末。
请注意,到周末,我的意思是如果他们想要周四到周二,周六和周日不是2天的周末费率,而是一个周末的单一费率。因此对于星期四 - >星期二,这将是一个周末的计数。
星期六 - >周六将是2个周末的计数,因为第一个星期六与下周六的周末不同。周日到周日也是如此,无论周末是完整周末还是部分周末,它都在计算周末。只要周末的某些部分或任何部分属于该日期范围,就算作一个周末。我能想到的最好的比喻是考虑周末持续48小时的一天,而不是过去24小时的2天。
那么,我如何确定php中两个日期之间有多少'整个或部分周末'?
答案 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++;
}