• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 281
  • Last Modified:

showing only week numbers after the 3rd of each month

i have an array of weeks:

$weeks = array('1','2','3','4' ... '52');

when it is the 3rd of each month, remove any week numbers previous to that current weeks week number.

for example:  todays date is the 09/04/2007 and the week number is 15.  since its gone past the 03/04/2007, my array should only contain week numbers 15 - 52.  if it was 02/04/2007, i would expect my array to contain weeks 14 - 52....

next week (week 16) my array should still contains week numbers 15 - 52. when it gets to 03/05/2007, my array should only contain week numbers from the 03/05/2007 to up week 52.  so this would be weeks 18 - 52 left... weeks 15, 16 & 17 would be removed as these weeks numbers come before the 3rd May 2007.

this is the code i was using but it isnt working.  after each week, the previous week number is been removed...  my idea was to get the current week number and store this in the array.  then i get the 3rd of the month and compare this against the current date.  if its before the 3rd of the month, show the previous week number up to week 52 etc etc

$weeks[] = date('W');

$the_3rd_of_the_month = '03/'.date('m').'/'.date('Y');

if(date('d/m/Y') < $the_3rd_of_the_month)
{
      $weeks[] = date('W')-1;
}

sort($weeks);

for($wk = $weeks[0]; $wk < 53; $wk++)
{
    // fill my select box
}
0
ellandrd
Asked:
ellandrd
  • 2
1 Solution
 
adaossCommented:
Hi,
try this code:

<?php
      for ($i=0;$i<=52;$i++)
            $week[$i] = $i;

      $curWeek = date("W") - 1;

      for ($j = $curWeek; $j<=52;$j++) {
            // fill my select box
      }
?>

Hope this help,
Adão
0
 
adaossCommented:
Sorry last post, i forgot the 3rd day issue.

Here is the right answer:

<?php
      
      for ($i=0;$i<=52;$i++)
            $week[$i] = $i;
      
      $curDay = date("d");
      if ( $curDay < 3 ) {
            $curWeek = date("W") - 1;
      } else {
            $curWeek = date("W", mktime(0,0,0, date("m"), 3, date("Y")));
      }

      for ($j = $curWeek; $j<=52;$j++) {
            // fill select box
      }
?>
0
 
ellandrdAuthor Commented:
works perfect - thank you!
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now