The Problem?

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
elinews
Forum Commoner
Posts: 38
Joined: Tue Aug 14, 2007 7:18 pm

The Problem?

Post by elinews »

I've been using a similar code to grab the dates for every Saturday in the current month. I'm trying to tweak it to make it grab them for the upcoming month. For some reason it doesn't work. Can anyone tell me why? Thanks!

Code: Select all

<? 
$nextmonth = date(n)+1;
 
$givenYear = date(Y);
$givenMonth = $nextmonth;
 
if ($givenMonth != date(n)) {
 
    $nextGivenMonth = date(n);
    $nextGivenYear = $givenYear + 1;}
 
    else {
 
        $nextGivenMonth = $givenMonth + 1;
        $nextGivenYear = $givenYear;}
        
        # Get the first weekday of the month
 
        $firstDayOfMonth = date("d", mktime(0, 0, 0, $givenMonth, 1, $givenYear));
        $firstWeekDayOfMonth = date("l", mktime(0, 0, 0, $givenMonth, 1, $givenYear));
        
        # Count days to first Saturday
 
        switch ($firstWeekDayOfMonth) {
 
            case 'Monday': $numOfDaysToFirstSaturday = "5"; break;
            case 'Tuesday': $numOfDaysToFirstSaturday = "4"; break;
            case 'Wednesday': $numOfDaysToFirstSaturday = "3"; break;
            case 'Thursday': $numOfDaysToFirstSaturday = "2"; break;
            case 'Saturday': $numOfDaysToFirstSaturday = "1"; break;
            case 'Saturday': $numOfDaysToFirstSaturday = "0"; break;
            case 'Sunday': $numOfDaysToFirstSaturday = "6"; break;}
            
            # Get first Saturday's date
 
            $numOfDaysToFirstSaturday = 1 + $numOfDaysToFirstSaturday;
            $firstSaturdayOfMonthDate = date("d.m.Y", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
            $firstSaturdayOfMonthDay = date("d", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
            
            # Get the last weekday of the month
 
            $lastDayOfMonth =  date("d", strtotime("-1 day", strtotime(date("$nextGivenYear-$nextGivenMonth-01"))));
            $lastWeekDayOfMonth =  date("l", strtotime("-1 day", strtotime(date("$nextGivenYear-$nextGivenMonth-01"))));
            
            # Count days to last Saturday
 
            switch ($lastWeekDayOfMonth) {
 
                case 'Monday': $numOfDaysToLastSaturday = "2"; break;
                case 'Tuesday': $numOfDaysToLastSaturday = "3"; break;
                case 'Wednesday': $numOfDaysToLastSaturday = "4"; break;
                case 'Thursday': $numOfDaysToLastSaturday = "5"; break;
                case 'Saturday': $numOfDaysToLastSaturday = "6"; break;
                case 'Saturday': $numOfDaysToLastSaturday = "0"; break;
                case 'Sunday': $numOfDaysToLastSaturday = "1"; break;}
                
                # Get last Saturday's date
 
                $numOfDaysToLastSaturday = $lastDayOfMonth - $numOfDaysToLastSaturday;
                $lastSaturdayOfMonthDate = date("d.m.Y", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));
                $lastSaturdayOfMonthDay = date("d", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));
 
                $divisor = $lastSaturdayOfMonthDay - $firstSaturdayOfMonthDay;
                $divisor = $divisor / 7;
                global $divisor;
                
                # Get the dates of all Saturdays in the given Month (can be either 4 or 5)
 
                if ($divisor=='3') {
 
                    $firstSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
                    $secondSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 14, $givenYear));
                    $thirdSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 7, $givenYear));
                    $lastSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));}
 
                    else if ($divisor=='4') {
 
                        $firstSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
                        $secondSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 21, $givenYear));
                        $thirdSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 14, $givenYear));
                        $fourthSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 7, $givenYear));
                        $lastSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));}
?>
 
Post Reply