Solved

Countdown script

Posted on 2004-08-13
5
870 Views
Last Modified: 2008-03-17
Hello,

I have a .js script that will display a countdown. It's working perfect but, I want to change the "output". Like only display the days, hours.

function countdown_clock(year, month, day, hour, minute, format)
         {
         //I chose a div as the container for the timer, but
         //it can be an input tag inside a form, or anything
         //who's displayed content can be changed through
         //client-side scripting.
         html_code = '<div id="countdown"></div>';
         
         document.write(html_code);
         
         countdown(year, month, day, hour, minute, format);                
         }
         
function countdown(year, month, day, hour, minute, format)
         {
         Today = new Date();
         Todays_Year = Today.getYear() - 2000;
         Todays_Month = Today.getMonth() + 1;                  
         
         //Convert both today's date and the target date into miliseconds.                          
         Todays_Date = (new Date(Todays_Year, Todays_Month, Today.getDate(),
                                 Today.getHours(), Today.getMinutes(), Today.getSeconds())).getTime();                                
         Target_Date = (new Date(year, month, day, hour, minute, 00)).getTime();                  
         
         //Find their difference, and convert that into seconds.                  
         Time_Left = Math.round((Target_Date - Todays_Date) / 1000);
         
         if(Time_Left < 0)
            Time_Left = 0;
         
         switch(format)
               {
               case 0:
                    //The simplest way to display the time left.
                    document.all.countdown.innerHTML = Time_Left + ' seconds';
                    break;
               case 1:
                    //More datailed.
                    days = Math.floor(Time_Left / (60 * 60 * 24));
                    Time_Left %= (60 * 60 * 24);
                    hours = Math.floor(Time_Left / (60 * 60));
                    Time_Left %= (60 * 60);
                    minutes = Math.floor(Time_Left / 60);
                    Time_Left %= 60;
                    seconds = Time_Left;
                   
                    dps = 'en'; hps = ''; mps = ''; sps = '';
                    //ps is short for plural suffix.
                    if(days == 1) dps ='';
                    if(hours == 1) hps ='';
                    if(minutes == 1) mps ='';
                    if(seconds == 1) sps ='';
                   
                    document.all.countdown.innerHTML = days + ' dag' + dps + ' ';
                    document.all.countdown.innerHTML += hours + ' uur' + hps + ' ';
                    document.all.countdown.innerHTML += minutes + ' minuten' + mps + ' en ';
                    document.all.countdown.innerHTML += seconds + ' seconden' + sps;
                    break;
               default:
                    document.all.countdown.innerHTML = Time_Left + ' seconds';
               }
               
         //Recursive call, keeps the clock ticking.
         setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + format + ');', 1000);
         }

in html page:

<script src="countdown-clock.js" type="text/javascript"></script>
<script type="text/javascript">countdown_clock(04, 09, 07, 00, 00, 1);</script>

please help,

regards Martijn
0
Comment
Question by:Milcoi
  • 2
  • 2
5 Comments
 
LVL 15

Accepted Solution

by:
Colosseo earned 150 total points
ID: 11790918
Hi

This section outputs to the div tag so you can change which fields are displayed here

                    document.all.countdown.innerHTML = days + ' dag' + dps + ' ';
                    document.all.countdown.innerHTML += hours + ' uur' + hps + ' ';
                    document.all.countdown.innerHTML += minutes + ' minuten' + mps + ' en ';
                    document.all.countdown.innerHTML += seconds + ' seconden' + sps;

To only display the days and hours simpy remove the last two lines to leave

                    document.all.countdown.innerHTML = days + ' dag' + dps + ' ';
                    document.all.countdown.innerHTML += hours + ' uur' + hps + ' ';

HTH

Scott
0
 
LVL 33

Assisted Solution

by:sajuks
sajuks earned 100 total points
ID: 11790922
You can add a new case to the .js file
                 case 2:
                    days = Math.floor(Time_Left / (60 * 60 * 24));
                    Time_Left %= (60 * 60 * 24);
                    hours = Math.floor(Time_Left / (60 * 60));
                    Time_Left %= (60 * 60);
                    dps = 'en'; hps = '';
                    //ps is short for plural suffix.
                    if(days == 1) dps ='';
                    if(hours == 1) hps ='';
                    document.all.countdown.innerHTML = days + ' dag' + dps + ' ';
                    document.all.countdown.innerHTML += hours + ' uur' + hps + ' ';
                    break;
and in the main html page
<script type="text/javascript">countdown_clock(04, 09, 07, 00, 00, 2);</script>
0
 

Author Comment

by:Milcoi
ID: 11791073
Thanx!! Both options are perfect!!

I split the points and give  "Colosseo" 150 and "sajuks" 100

Colosseo answered first, and I use sajuks option.
0
 
LVL 33

Expert Comment

by:sajuks
ID: 11791117
Thanks for the points and grade
0
 
LVL 15

Expert Comment

by:Colosseo
ID: 11791469
Yeah thanks Milcoi... glad you got it sorted :)
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

In my daily work (mainly using ASP.net), I need to write a lot of JavaScript code. One of the most repetitive tasks I do are the jQuery Ajax calls. You know: (CODE) I don't know if for you it's the same, but for me is soooo tedious to write the …
JavaScript can be used in a browser to change parts of a webpage dynamically. It begins with the following pattern: If condition W is true, do thing X to target Y after event Z. Below are some tips and tricks to help you get started with JavaScript …
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

747 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now