2016-05-25 16 views
-1

Ich habe eine komplexe Zeitintervallüberprüfung Ich habe Probleme zu lösen. Hier ist das Problem:Complex Zeitintervall überprüfen in PHP

Ich muss Pickup-Zeit für Aufträge dynamisch berechnen. Bestellungen von Montag 10:01 Uhr bis Mittwoch 10 Uhr werden am Freitag geliefert. Bestellungen von Mittwoch 10:01 Uhr bis Freitag 10:00 Uhr werden am folgenden Montag geliefert. Bestellungen von Freitag 10:01 Uhr bis Montag 10:00 Uhr werden am folgenden Mittwoch auf geliefert.

Ich arbeite in PHP und mit Hilfe von Kohlenstoff (http://carbon.nesbot.com/docs/) und die Auftragserteilung Zeit wird Kohlenstoff sein :: jetzt()

+0

Sie Zeit diff zwischen zwei Terminen –

+1

Was ist die eigentliche Frage berechnet werden soll? Was hast du probiert? Ich kann nicht sagen, an welcher Stelle du feststeckst. –

+0

Es gibt sehr ähnliche Fragen zu Ihrem http://stackoverflow.com/questions/37196603/delivery-days-in-cities-using-array-php – Richard

Antwort

0

Sorry für meinen vorherigen Code. Ich überprüfte und fand dort einige Fehler. Ich habe den Code umgeschrieben und hier ist komplette und funktionierende Lösung für Sie. Sie können einen Blick auf die Bedingungen haben, um herauszufinden, was ich getan habe:

<?php 
    date_default_timezone_set('Asia/Karachi'); // set default timezone if needed 
    $time = new DateTime(); 
    $day = $time->format('l'); 
    $IntervalA = new DateTime('10:01'); 
    $IntervalB = new DateTime('10:00'); 

    // for friday delivery 
    if(in_array($day, array('Monday', 'Tuesday')) AND $time >= $IntervalA OR in_array($day, array('Wednesday')) AND $time <= $IntervalB) { 
     echo "The product will be delivered on Friday"; 
    } 

    // for monday delivery 
    if(in_array($day, array('Wednesday', 'Thursday')) AND $time >= $IntervalA OR in_array($day, array('Friday')) AND $time <= $IntervalB) { 
     echo "The product will be delivered on Monday"; 
    } 

    // for wednesday delivery 
    if(in_array($day, array('Friday', 'Saturday', 'Sunday')) AND $time >= $IntervalA OR in_array($day, array('Monday')) AND $time <= $IntervalB) { 
     echo "The product will be delivered on Wednesday"; 
    } 
+0

Vielen Dank rehmat! Lösung funktioniert perfekt – RiaanZA

+0

@RiaanZA Gut zu wissen, dass es funktioniert :) – Rehmat