2016-04-29 4 views
-1

Ich bin auf der Suche nach einer Möglichkeit, zwei Fehler der Zeit zu vergleichen.php, um zwei Fehler der Zeit zu vergleichen

Wenn der zweite Fehler oder ein Teil davon in der ersten ist -> return false. Obwohl, wenn die erste oder ein Teil davon in der zweiten ist -> Return auch falsch.

Ich fühle mich wie ich nicht Mathematikunterricht hatte schwänzen ...

Ich habe

// first lapse 
$a = strtotime('2016/05/04 22:50'); 
$b = strtotime('2016/05/20 22:15'); 
// second lapse 
$y = strtotime('2016-05-12 12:00'); 
$z = strtotime('2016-05-20 10:00'); 

if (($y >= $a && $y <= $b) || ($z >= $a && $z <= $b) 
|| ($a >= $y && $a <= $z) || ($b >= $y && $b <= $z)) 
    return false; 

Aber es ist ruhig confuse in meinem Gehirn. Ich bin mir nicht sicher, was es tun soll. Danke.

bearbeiten

ich meine Frage dupliziert wurde with this one gefunden

+2

zählen, wenn Sie nicht sicher sind, Wenn es tut, was es soll, wie werden wir es wissen? – dustinroepsch

+0

Weil es ein Wissensforum ist. Ich brauche nur etwas Hilfe ... Und ich möchte lernen. – JazZ

+0

Computer sind keine Magie, und wir sind nicht psychisch. Wenn Sie die gewünschte Ausgabe und/oder den Prozess nicht beschreiben können, ist es sinnlos, überhaupt Code zu schreiben. – Sammitch

Antwort

3

wenn $ a < = $ b und $ y < = $ z,

min($b, $z) - max($a, $y) 

if < 0 - no overlap  
    = 0 - common boundary point 
    > 0 - overlap 
+0

wenn> 0 nicht überlagern und wenn> 0 überlagern? Es sieht ziemlich ernst aus, aber ich verstehe es nicht gut. Können Sie bitte einige Erklärungen hinzufügen? – JazZ

+2

Danke. Tippfehler. Zeichnen Sie einfach auf Papier und Sie werden verstehen - das Maximum der linken Kanten der Segmente ist richtig als das Minimum von rechts – splash58

+0

@AdrienLeber verstehst du die Lösung? – splash58

Verwandte Themen