我需要做的是检查"任务"是否发生在午餐时间。我有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);
我真的不确定是否理解了你的问题,但如果你想知道thisStart
和thisEnd
是否都在午餐时,试试这个:
if (!($thisStart > $lunchEnd || $thisEnd < $lunchStart) ){
// Occurs during lunch
}