计算日期之间的天数,不计算周六和周日[重复]

Posted

技术标签:

【中文标题】计算日期之间的天数,不计算周六和周日[重复]【英文标题】:Calculate days between date and not counting saturdays and sundays [duplicate] 【发布时间】:2013-01-18 00:58:50 【问题描述】:

可能重复:Calculate business days

我有一个显示项目时间表的报告,在该报告中我有一个信号量,它会随着项目计划开始日期和实际日期之间的差异而变化,即:

如果计划日期与实际开始日期相同,则信号量为绿色。

如果日期之间的天数差 > 0 且

如果差值 > 3,则信号量为红色。

我的代码如下所示:

if( (strtotime($real) - strtotime($planned)) == 0 )

    $semaphore = 'green';

问题是计划日期例如是星期五,而项目实际上是在下星期一开始的。在这种情况下,信号量应该是黄色的,因为项目比计划晚了一天(工作)开始。问题是我正在计算周六和周日,而信号量显示为红色。

我该如何做这个例外?

编辑:

我终于这样做了:

if((date('l',strtotime($planned)) == 'Friday') AND (strtotime('next monday',strtotime($planned)) == strtotime($real)))

    $semaphore = 'yellow';

【问题讨论】:

【参考方案1】:

假设你有$real = '2007/10/31';

  $weekday = date('l', strtotime($real));  // Wednesday

可以this help you

我建议在这些日期之间获取天数,然后 make if 他们之间的日子是星期日或星期六

【讨论】:

以上是关于计算日期之间的天数,不计算周六和周日[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何删除两个日期之间的星期六和星期日并计算总天数[重复]

oracle怎么计算两个日期之间去除周末的天数?

用for循环计算任意两个日期之间的工作日(去掉周六周日)

用javascript计算任意两个日期之间的工作日(去掉周六周日),不用while循环,而是用for循环

如何在Excel中设置日期倒计时函数,不包含周六周日两天。

C++ 计算两个日期之间的天数