0

可能重复:
计算工作日

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

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

如果日期之间的天数差 > 0 且 < 2,则为黄色。

如果差值 > 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';
}
4

1 回答 1

0

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

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

这可以帮助你吗

我建议在这些日期之间获取几天,然后确定它们之间的日子是星期日还是星期六

于 2013-01-18T01:33:37.637 回答