2012-04-04 15 views

Antwort

1

Try this:

function getAllWednesday($from_date, $to_date){ 
    // getting number of days between two date range. 
    $number_of_days = count_days(strtotime($from_date),strtotime($to_date)); 

    for($i = 1; $i<=$number_of_days; $i++){ 
     $day = Date('l',mktime(0,0,0,date('m'),date('d')+$i,date('y'))); 
     if($day == 'wednesday'){ 
      echo Date('d-m-Y',mktime(0,0,0,date('m'),date('d')+$i,date('y'))),'<br/>'; 
     } 
    } 
} 

Die count_days() Funktion

function count_days($a, $b) 
{ 
    // First we need to break these dates into their constituent parts: 
    $gd_a = getdate($a); 
    $gd_b = getdate($b); 
    // Now recreate these timestamps, based upon noon on each day 
    // The specific time doesn't matter but it must be the same each day 
    $a_new = mktime(12, 0, 0, $gd_a['mon'], $gd_a['mday'], $gd_a['year']); 
    $b_new = mktime(12, 0, 0, $gd_b['mon'], $gd_b['mday'], $gd_b['year']); 
    // Subtract these two numbers and divide by the number of seconds in a 
    // day. Round the result since crossing over a daylight savings time 
    // barrier will cause this time to be off by an hour or two. 
    return round(abs($a_new - $b_new)/86400); 
} 
+0

Ist 'count_days' eine native Funktion, die ich nicht kenne, oder wird angenommen, dass der OP diesen Teil selbst schreiben muss? – Josh

+0

Es tut uns leid, aber es zeigt keine Daten von Tagen zwischen dem Startdatum und dem Enddatum, stattdessen zeigt es die Tage vom aktuellen Datum bis zur Nummer an. von Zeiten – Mann

+0

@mann und Josh I Bearbeitete die Antwort und fügte die count_days() Funktion hinzu. Entschuldigung, ich habe dein Problem gesehen und ich habe gleichzeitig daran gearbeitet. :) – B4NZ41

Verwandte Themen