可能重复:
Calculate business days
我有一份显示项目进度表的报告,在该报告中,我有一个信号量,它随着项目计划开始日期和实际开始日期之间的差异而变化,即:
如果计划日期与实际开始日期相同,则信号量为绿色。
如果日期之间的天数差异大于等于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';
}
答案 0 :(得分:0)
假设你有$real = '2007/10/31';
$weekday = date('l', strtotime($real)); // Wednesday
我建议在这些日期之间获取日期,然后制作if 他们之间的日子是周日或周六