Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8055101
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T08:17:36+00:00 2026-06-05T08:17:36+00:00

I asked yesterday about saving a timer value when the browser closes and then

  • 0

I asked yesterday about saving a timer value when the browser closes and then start counting again when the user opens it. I’ve found that using cookies must be a good solution, so i’ve added the set and getcookie functions, but still i can’t get my timer values. This might be easy, but i cant see what’s wrong because i’m still too noob in javascript. Does someone know what i’m doing wrong? thank you!! here’s the code i have so far:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
    <title>Test</title>
    <script type="text/javascript">
var sec = 0;
var min =  0;
var hr = 0;
var dias = 0;
var bool = true;
function stopwatch() {
        sec++;
        if (sec == 60) {
            sec = 0;
            min += 1;
        }

        if (min == 60) {
            min = 0;
            hr += 1;
        }

        if (hr == 24) {
            hr = 0;
            dias += 1;
        }

        totalTime = ((dias<=9) ? "0" + dias : dias) + "d, " + ((hr<=9) ? "0" + hr : hr) + " : " + ((min<=9) ? "0" + min : min) + " : " + ((sec<=9) ? "0" + sec : sec);
        document.getElementById("timer").innerHTML = totalTime;
        if (bool == true) {
        start = setTimeout("stopwatch()", 1000);
        }

    }

function setCookie(name, value, expires) {
document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : "; expires=" + expires.toGMTString());
}



function getCookie (name) {
    var cname = name + "=";               
    var dc = document.cookie;

    if (dc.length > 0) {              
        begin = dc.indexOf(cname);       
            if (begin != -1) {           
            begin += cname.length;       
            end = dc.indexOf(";", begin);
                if (end == -1) end = dc.length;
                return unescape(dc.substring(begin, end));
            } 
        }
    return null;
}


var exp = new Date();                                  
exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));

    </script>
</head>
<body onload="stopwatch()">
    <div id="timer" name="timer"> </div>
  <button onclick="bool = false"; > pause </button>
  <button onclick="bool = true;stopwatch();" > resume </button>

    <form>
      <input type="button" value="Set a Cookie" onClick="setCookie('myCookie',timer.value, exp)">
    </form>
<form>
<input type="button" value="Get Cookie Value" onClick="this.form.tf.value = getCookie('myCookie')">
<input type="text" name="tf" size="30">
</form>

 </body>
</html>
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T08:17:38+00:00Added an answer on June 5, 2026 at 8:17 am

    The problem as @floorish said, timer.value is not exist because timer is a DIV element and did not have value property.

    So, you need to change timer.value to document.getElementById('timer').innerHTML and would be fine.

    Live jsFiddle demo


    EDIT 1:

    If you want the timer start counting where it saved on the cookie, you should read the cookie when the page is loaded. I made it like this:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Timer</title>
    </head>
    <body>
    <div id="timer">&nbsp;</div>
    <button id="switcher"></button>
    <p><input type="button" id="setCookie" value="Set a Cookie"></p>
    <p><input type="button" id="getCookie" value="Get Cookie Value"> <input type="text" id="lastTime" size="30"></p>
    <script>
    /**
     * Set cookie 
     * @param {string} name Name of cookie
     * @param {string} value Value of the cookie
     * @param {object} expires Date object of expire time
     */
    function setCookie(name, value, expires) {
      document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : "; expires=" + expires.toGMTString());
    }
    
    /**
     * Get cookie 
     * @param {string} name Name of cookie
     * @return {?string}
     */
    function getCookie(name) {
        var cname = name + "=";               
        var dc = document.cookie;
    
        if (dc.length > 0) {              
        begin = dc.indexOf(cname);       
          if (begin != -1) {           
          begin += cname.length;       
          end = dc.indexOf(";", begin);
            if (end == -1) end = dc.length;
            return unescape(dc.substring(begin, end));
          } 
        }
        return null;
    }
    
    var time;
    
    /**
     * Format time and return formatted string
     * @param {number} time Time in seconds that will formatted
     * @return {string}
     */
    function formatTime(time) {
      var days = parseInt(time / 86400, 10); // Calculate days from seconds and delete decimals.
      if (0 > days) {
        days = 0;
      }
    
      var hours = parseInt((time -  days * 86400) / 3600, 10); // Calculate hours from seconds and delete decimals.
      if (0 > hours) {
        hours = 0;
      }
    
      var mins = parseInt((time -  days * 86400 - hours * 3600) / 60, 10); // Calculate minutes from seconds and delete decimals.
      if (0 > mins) {
        mins = 0;
      }
    
      var seconds = parseInt(time - days * 86400 - hours * 3600 - mins * 60, 10); // Calculate remain seconds.
    
      // Array for the time display, the content is something like:
      //   array(3) {
      //     0: '01',
      //     1: '57',
      //     2: '31'
      //   }
      var displayHours = [
        ((hours <= 9) ? '0' + hours : hours),
        ((mins <= 9) ? '0' + mins : mins),
        ((seconds <= 9) ? '0' + seconds : seconds)
      ];
    
      // Return formatted days and the displayHours is joined with ' : ', then it like this:
      //   '00d, ' + '01 : 57 : 31'
      return ((days <= 9) ? '0' + days : days) + 'd, ' + displayHours.join(' : ');
    }
    
    /**
     * Append to the 'timer' DIV the formatted time
     */
    function watch() {
      // Append to the 'timer' DIV a formatted time
      //   ++time equal time = time + 1
      document.getElementById('timer').innerHTML = formatTime(++time);
    }
    
    /**
     * @type {?object} Variable to handle the interval timer.
     */
    var timer = null;
    
    /**
     * Switch between 'pause' and 'resume' time
     */
    var switcher = function () {
      if (timer) { // If timer is assigned and not null
        clearInterval(timer); // Clear the interval to stop
        timer = null; // Null the timer
        document.getElementById('switcher').innerHTML = 'Resume'; // Change the word of the button to 'Resume'.
      } else {
        timer = setInterval(watch, 1000); // Start the interval timer
        document.getElementById('switcher').innerHTML = 'Pause'; // Change the word of the button to 'Pause'.
      }
    };
    
    // Assign on click event to 'switcher' button
    document.getElementById('switcher').onclick = switcher;
    
    // Assign on click event to 'setCookie' button
    document.getElementById('setCookie').onclick = function () {
      // New Date object for the expire time
      var exp = new Date();
      // Set the expire time
      exp.setTime(exp + 2592000000);
      // Set a 'time' cookie with the current timer time and expire time object.
      setCookie('time', time, exp);
    };
    
    // Asign on click event to 'getCookie' button
    document.getElementById('getCookie').onclick = function () {
      document.getElementById('lastTime').value = formatTime(getCookie('time'));
    };
    
    // Function that will call when document loaded.
    window.onload = function () {
      // Get the time saved into the cookie and turn it to number.
      var oldTime = parseInt(getCookie('time'), 10);
      if (0 < oldTime) { // If the time saved
        time = oldTime; // Set the current time to the saved time
      } else { // If not time saved
        time = 0; // Set the current time to zero.
      }
    
      // Start the timer
      switcher();
    }
    </script>
    </body>
    </html>
    

    Live jsFiddle Demo

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I asked yesterday about saving a timer value when the browser closes and then
I asked a question about different testing frameworks yesterday. This question can be found
Yesterday my friend asked me a question about this query: select * from user
Yesterday I asked about serving byte ranges from PHP. Today my question is -
Yesterday I asked about using an exlusive maven repository, now it turns I need
Yesterday I asked this general question about decimals and their internal precisions. Here is
I asked a question about bigints yesterday which was kindly answered. However, I have
I asked a question about making a greatest n per group type query yesterday
I asked a question yesterday about password safety... I am new at security... I
I asked this question yesterday about storing a plot within an object. I tried

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.