2017-11-08 4 views
1

Beim Versuch, diese beiden Arrays zu vergleichen, wird die Datumsliste von $ arr bereinigt und zeigt nur die Daten an, die in $ schedule_1 angezeigt werden. aber es ist Ausgabe Array() und ich kann nicht herausfinden, warum!Kann Array Interscet nicht funktionieren?

// GENERATE DATE AND TIME ARRAY 

// Set timezone 
date_default_timezone_set('America/New_York'); 

// Start date 
$date = date('Y-m-d H:') . "00"; 
// End date 
$end_date = date ("Y-m-d H:i", strtotime("+1 week", strtotime($date))); 

while (strtotime($date) <= strtotime($end_date)) { 
    $arr[] = "$date"; 
    $date = date ("Y-m-d H:i", strtotime("+30 minutes", strtotime($date))); 
} 


// #1 SCHEDULE 
$schedule_1 = array(
"2017-11-14 12:00:00", 
"2017-11-14 13:00:00" 
); 


print_r(array_intersect($arr, $schedule_1)); 
+1

Ihr '$ arr' Array enthält Daten des Format' Ymd H: i', aber Ihr '$ schedule_1'-Array enthält Daten des Formats' Ymd H: i: s'. Du hast nicht einmal 'var_dump ($ arr, $ schedule_1);' um zu sehen, was du zu vergleichen versuchst, oder? –

Antwort

1

Alles, was Sie tun müssen, ist:

$schedule_1 = array(
    'date1' => "2017-11-14 12:00", 
    'date2' => "2017-11-14 13:00" 
); 

Alternativ Code unten Ihr Problem zu lösen wäre:

$end_date = date ("Y-m-d H:i:s", strtotime("+1 week", strtotime($date))); 

while (strtotime($date) <= strtotime($end_date)) { 
    $arr[] = "$date"; 
    $date = date ("Y-m-d H:i:s", strtotime("+30 minutes", strtotime($date))); 
} 
+0

Oder '$ date = date (" Ymd H: ich: s "...' – AbraCadaver

+0

@AbraCadaver Nun, das würde funktionieren, aber OP nur formatiert ohne 'second', deshalb habe ich das so gezeigt. Ich werde es als aktualisieren eine alternative Lösung –

Verwandte Themen