www.webdeveloper.com
Results 1 to 4 of 4

Thread: output based on date range

  1. #1
    Join Date
    Aug 2012
    Posts
    2

    output based on date range

    I am trying to find a script that will change text based on a date range.
    My product changes on the 8th and 23nd of each month. For example on the 23rd of August I would like the text to say "Now enrolling for September 15, October 1 and October 15th" The text would change on September 8th to "Now enrolling for October 1, October 15 and November 15th"
    I would like this to roll throughout the year.

    Thanks in advance for your help

  2. #2
    Join Date
    Oct 2010
    Location
    Versailles, France
    Posts
    1,252
    Try something like this
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <title></title>
    <style type="text/css">
    
    </style>
    </head>
    <body>
    	<p id="msg"></p>	
    <script type="text/javascript">
    // To test a date with the year, javascript month (0-11), day and hours (at nome)
    var tdy=new Date(2012,7,10,12);
    // The datas are to remove ( var tdy=new Date(); ) to work with the date of the day
    // To write the months
    var mnt="January,February,March,April,May,June,July,August,September,October,November,December".split(',');
    var frsDte,scdDte,thrDte;
    if (tdy.getDate()<8) {
    	frsDte=mnt[tdy.getMonth()]+' 15th';
    	scdDte=mnt[tdy.getMonth()+1]+' 1st';
    	thrDte=mnt[tdy.getMonth()+1]+' 15th';
    }
    else if (tdy.getDate()<23) {	
    	frsDte=mnt[tdy.getMonth()+1]+' 1st';
    	scdDte=mnt[tdy.getMonth()+1]+' 15th';
    	thrDte=mnt[tdy.getMonth()+2]+' 1st';
    }
    else {
    	frsDte=mnt[tdy.getMonth()+1]+' 15th';
    	scdDte=mnt[tdy.getMonth()+2]+' 1st';
    	thrDte=mnt[tdy.getMonth()+2]+' 15th';
    }	
    document.getElementById('msg').innerHTML="Now enrolling for "+frsDte+", "+scdDte+" and "+thrDte;
    </script>
    </body>
    </html>
    But, attention on the limits: the shown dates are local on the client browser !

  3. #3
    Join Date
    Aug 2012
    Posts
    2
    Thanks! Worked like a charm.

  4. #4
    Join Date
    Oct 2010
    Location
    Versailles, France
    Posts
    1,252
    I forgott a modulo 12 to retrieve the first months at the end of year !
    Code:
    <script type="text/javascript">
    // To test a date with the year, javascript month (0-11), day and hours (at nome)
    var tdy=new Date(2012,11,16,12);
    // The datas are to remove ( var tdy=new Date(); ) to work with the date of the day
    // To write the months
    var mnt="January,February,March,April,May,June,July,August,September,October,November,December".split(',');
    var frsDte,scdDte,thrDte,dte=tdy.getDate(),crrMnt=tdy.getMonth(),frsMnt,scdMnt;
    if (dte<8) {frsMnt=crrMnt;scdMnt=(crrMnt+1)&#37;12;
    	frsDte=mnt[frsMnt]+' 15th';
    	scdDte=mnt[scdMnt]+' 1st';
    	thrDte=mnt[scdMnt]+' 15th';
    }
    else if (dte<23) {frsMnt=(crrMnt+1)%12;scdMnt=(crrMnt+2)%12;	
    	frsDte=mnt[frsMnt]+' 1st';
    	scdDte=mnt[frsMnt]+' 15th';
    	thrDte=mnt[scdMnt]+' 1st';
    }
    else {frsMnt=(crrMnt+1)%12;scdMnt=(crrMnt+2)%12;
    	frsDte=mnt[frsMnt]+' 15th';
    	scdDte=mnt[scdMnt]+' 1st';
    	thrDte=mnt[scdMnt]+' 15th';
    }	
    document.getElementById('msg').innerHTML="Now enrolling for "+frsDte+", "+scdDte+" and "+thrDte;
    </script>
    It would be also possible to add 7 days in the date before looking for the first or fifteenth day of the month
    Last edited by 007Julien; 08-26-2012 at 03:40 AM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles