----- Original Message -----
From: "Naga subba reddy"
> Hi use this code.
>
> <?php
>
> function get_day( $describer, $weekday, $reference_date ) {
> //$reference_date format = m-Y
>
> $d = explode('-',$reference_date);
>
> switch ($describer) {
> case 'first': $offset = get_day_offset($reference_date, $weekday);
> break;
> case 'second': $offset = get_day_offset($reference_date, $weekday) +
> 7; break;
> case 'third': $offset = get_day_offset($reference_date, $weekday) +
> 14; break;
> case 'fourth': $offset = get_day_offset($reference_date, $weekday) +
> 21; break;
> case 'last': $reference_date = ($d[0]+1).'-'.($d[1]); $d =
> explode('-',$reference_date);
> $offset = get_day_offset($reference_date, $weekday) -
> 7; break;
> }
>
> $r = mktime( 0, 0, 0, $d[0], 1+$offset, $d[1] );
> return $r; //returns timestamp format
> }
>
> function get_day_offset( $anchor , $target ) { //$anchor format = m-Y
>
> $ts = explode('-',$anchor);
> $ts = mktime(0,0,0,$ts[0],'01',$ts[1]);
>
> $anchor = date("w",$ts);
> $target = strtolower($target);
> $days = array( 'sunday'=>0, 'monday'=>1, 'tuesday'=>2, 'wednesday'=>3,
> 'thursday'=>4, 'friday'=>5, 'saturday'=>6 );
>
> $offset = $days[$target] - $anchor;
> if ($offset<0) $offset+=7;
>
> return $offset; //returns 0-6 for use in get_day();
> }
>
>
> $date1 = get_day("Second", "Saturday", "12-2007");
> $date2 = get_day("Last", "Friday", "11-2007");
> $date3 = get_day("Second", "Sunday", "11-2007");
>
> echo "Last Friday of November, 2007: ".date("m-d-Y", $date2)."<br>";
> echo "Second Sunday of November, 2007: ".date("m-d-Y", $date3)."<br>";
>
> ?>
Hi Subba,
Just had to make the "Second", "Last" in get_day(); to lowercase, and it works
a treat.
I was thinking of building up my own function, but you've done it all for me.
Now, what I'm I going to do for the rest of the week? (I'm joking of course).
Many thanks, Bob.