我试图找出一个时间段是否在一个时间段内。我有我的参考时间段和比较时间段。让我举一个例子:
=>,这是完全可以的。
=>不好,因为D在C。
我希望你能得到我想要的。我试图使serval <=>如果动作,但这开始变得巨大和缓慢。也许有更快的方法来做到这一点。
而且,MySQL能够做这样的事情吗?
发布于 2014-07-19 10:43:55
你可以用php timestamp试试这个
$reference_start_date = "1.1.2014";
$reference_end_date = "1.2.2014";
$comparative_start_date = "1.4.2014";
$comparative_end_date = "1.5.2014 ";
$reference_start_time = strtotime(str_replace(".", "-", $reference_start_date);
$reference_end_time = strtotime(str_replace(".", "-", $reference_end_date);
$comparative_start_time = strtotime(str_replace(".", "-", $comparative_start_date);
$comparative_end_time = strtotime(str_replace(".", "-", $comparative_end_date);
if($comparative_start_time>$reference_start_time && $comparative_start_time<$reference_end_time)
{
echo "Not OK";
}
else if($comparative_end_time>$reference_start_time && $comparative_end_time<$reference_end_time)
{
echo "Not OK";
}
else if($comparative_start_time<$reference_start_time && $comparative_end_time>$reference_end_time)
{
echo "Not OK";
}
else
{
echo "OK";
}发布于 2014-07-19 10:39:12
你可以这样做:
检查Reference_start >= comparative_start && Reference_end < comparative_end,如果此条件变为真,您的时间将重叠。
发布于 2014-07-19 10:41:20
如果您有一个reference句点(有startDate和endDate),并且有一个comparative句点,那么可以在MySQL中使用这个where子句:
where ((reference.startDate > comparative.endDate) or reference.endDate < comparative.startDate)如果这两个句点没有交集的话,这将是真的。
https://stackoverflow.com/questions/24839380
复制相似问题