我需要做的是检查一个"任务"在午餐时间不会发生。我有4个日期时间对象。我发现的最接近的代码在下面,但没有涵盖所有可能的情况,例如任务的开始可能是午餐的中途。
if (($thisStart <= $lunchStart) && ($thisEnd >= $lunchStart)) {
//happen at same time
}
由于
亚历
答案 0 :(得分:1)
这里你需要这个逻辑 将时间改为秒,这样很容易
但您的日期应为(“y / m / d”)格式
$thisStart_1 = strtotime($thisStart);
$lunchStart_1 = strtotime($lunchStart);
$thisEnd_1 = strtotime($thisEnd);
你的时间将会是这样的例子: - 2014-04-30 -------&gt; 1398808800(第二名)
所以,你在这里得到你的时间,所以很容易检查时间管理..
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);
回显forate来检查真正的格式
$askfrmt = date_format($date, 'Y-m-d');
您指定日期的strtotime功能
$askfrmta = strtotime($askfrmt);
答案 1 :(得分:1)
if($thisStart >= $lunchStart && $thisStart <= $lunchEnd)
{
//occurs during lunch
} else if ($thisEnd >= $lunchStart && $thisEnd <= $lunchEnd)
{
//occurs during lunch
}
那应该适合你。
但是,你是否可以澄清你的意思,它并没有涵盖所有的时间?
答案 2 :(得分:0)
&#39;我不确定理解您的问题,但如果您想知道thisStart
和thisEnd
是否都在午餐期间尝试:
if (!($thisStart > $lunchEnd || $thisEnd < $lunchStart) ){
// Occurs during lunch
}