PHP检查某个日期范围是否发生在另一个日期范围内



我需要做的是检查"任务"是否发生在午餐时间。我有4个日期时间对象。我找到的最接近的代码如下,但并没有涵盖所有可能的场景,例如任务的开始可能是午餐的一半。

 if (($thisStart <= $lunchStart) && ($thisEnd >= $lunchStart)) {
     //happen at same time
 }

感谢

Alex

if($thisStart >= $lunchStart && $thisStart <= $lunchEnd)
{
    //occurs during lunch
 } else if ($thisEnd >= $lunchStart && $thisEnd <= $lunchEnd)
{
    //occurs during lunch
}

这应该对你有用。

然而,你能澄清一下你所说的不涵盖所有时间的意思吗?

这里需要这个逻辑
将时间更改为秒,这样就很容易了

但你的日期应该是("y/m/d"(格式的

$thisStart_1 = strtotime($thisStart);

$lunchStart_1 = strtotime($lunchStart);  

$thisEnd_1 = strtotime($thisEnd);    

您的时间看起来是这样的,例如:-
2014-04-30------->13988808800(秒(

所以在这里你可以获得秒的时间,这样就可以很容易地检查时间管理

if (($thisStart_1 <= $lunchStart_1) && ($thisEnd_1 >= $lunchStart_1)) {
     //happen at same time
 }

如果您的日期格式不同,请使用此:-

日期格式-*/

$gDate='30/04/2014';//whatever format here put same in this "date_create_from_format" function

更改日期格式,使其可由strtotime函数使用

 $date = date_create_from_format('d/m/Y', $gDate);

echo-forate检查真正格式的

$askfrmt = date_format($date, 'Y-m-d');

给定日期上的strtotime函数

$askfrmta = strtotime($askfrmt);

我真的不确定是否理解了你的问题,但如果你想知道thisStartthisEnd是否都在午餐时,试试这个:

if (!($thisStart > $lunchEnd || $thisEnd < $lunchStart) ){    
// Occurs during lunch
}

相关内容

  • 没有找到相关文章

最新更新