Maison > Article > base de données > Analyser la méthode de mise en œuvre pour calculer si deux périodes de temps se croisent avec la programmation PHP
Cet article présente principalement la méthode d'implémentation de la programmation PHP pour calculer si deux périodes de temps se croisent. Combiné avec des exemples spécifiques, il compare et analyse la conversion et la comparaison des périodes de temps PHP et d'autres techniques d'exploitation associées auxquelles les amis dans le besoin peuvent se référer. it
L'exemple de cet article décrit la méthode d'implémentation de la programmation PHP pour calculer si deux périodes de temps se croisent. Partagez-le avec tout le monde pour votre référence, comme suit :
Version pré-optimisée :
/** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间1 * @param string $beginTime2 开始时间2 * @param string $endTime2 结束时间2 * @return bool */ function is_time_cross($beginTime1 = '', $endTime1 = '', $beginTime2 = '', $endTime2 = '') { $status = $beginTime2 - $beginTime1; if ($status > 0) { $status2 = $beginTime2 - $endTime1; if ($status2 > 0) { return false; } elseif ($status2 < 0) { return true; } else { return false; } } elseif($status < 0) { $status2 = $endTime2 - $beginTime1; if ($status2 > 0) { return true; } else if ($status2 < 0) { return false; } else { return false; } } else { $status2 = $endTime2 - $beginTime1; if ($status2 == 0) { return false; } else { return true; } } }
Version optimisée (fusion conditionnelle) :
/** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间1 * @param string $beginTime2 开始时间2 * @param string $endTime2 结束时间2 * @return bool */ function is_time_cross($beginTime1 = '', $endTime1 = '', $beginTime2 = '', $endTime2 = '') { $status = $beginTime2 - $beginTime1; if ($status > 0) { $status2 = $beginTime2 - $endTime1; if ($status2 >= 0) { return false; } else { return true; } } else { $status2 = $endTime2 - $beginTime1; if ($status2 > 0) { return true; } else { return false; } } }
Test :
$beginTime1 = strtotime('2015-08-07 06:30'); $endTime1 = strtotime('2015-08-07 08:30'); $beginTime2 = strtotime('2015-08-07 05:30'); $endTime2 = strtotime('2015-08-07 06:31'); echo is_time_cross($beginTime1, $endTime1, $beginTime2, $endTime2);//输出1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!