showing only week numbers after the 3rd of each month

Posted on 2007-04-09
Last Modified: 2007-04-09
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;


for($wk = $weeks[0]; $wk < 53; $wk++)
    // fill my select box
Question by:ellandrd
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2

Expert Comment

ID: 18875630
try this code:

      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,

Accepted Solution

adaoss earned 500 total points
ID: 18875670
Sorry last post, i forgot the 3rd day issue.

Here is the right answer:

      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
LVL 16

Author Comment

ID: 18877017
works perfect - thank you!

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses four methods for overlaying images in a container on a web page
This article discusses how to implement server side field validation and display customized error messages to the client.
The viewer will learn how to count occurrences of each item in an array.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question