Results 1 to 6 of 6

Thread: Universal Countdown Clock - Local Time is wrong!!!

  1. #1
    Join Date
    Dec 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Question Universal Countdown Clock - Local Time is wrong!!!

    1) Script Title: Universal Countdown Script

    2) Script URL (on DD):
    http://www.dynamicdrive.com/dynamici...lcountdown.htm

    3) Describe problem:
    I have put the script on a web page, which is due to countdown to a date in July 2007. The problem is that the script seems to think that my local date/time is 12 February 2008, with the correct time. The settings on my PC show the correct day/date/month/year etc.

    The web server is IIS6, on an XP machine, and using asp, so the command used to get the current date is Now() (Although I have changed this to DateTime.Now(), but still no difference). If i put this value in a label on the page, it does show the correct date/time.

    Any help would be much appreciated, as I am trying to get the site running before the new year.

  2. #2
    Join Date
    Mar 2006
    Location
    Illinois, USA
    Posts
    12,164
    Thanks
    265
    Thanked 690 Times in 678 Posts

    Default

    The problem is almost surely with the ASP code. Please post the relevant code for that part of the page and link to your page as well.
    Remember, we can't see the ASP source unless you post it because the servers processes it to html before serving the the browser.
    Daniel - Freelance Web Design | <?php?> | <html>| español | Deutsch | italiano | português | català | un peu de français | some knowledge of several other languages: I can sometimes help translate here on DD | Linguistics Forum

  3. #3
    Join Date
    Dec 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    The web address is currently http://81.137.106.186/wedding/

    The code in the page is as follows:

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="index.aspx.vb" Inherits="Wedding_index" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>The Wedding</title>
    <link href="scripts/style.css" type="text/css" rel="stylesheet"/>
    <style type="text/css">

    .lcdstyle{ /*Example CSS to create LCD countdown look*/
    background-color:black;
    color:lime;
    font: bold 18px MS Sans Serif;
    padding: 3px;
    }

    .lcdstyle sup{ /*Example CSS to create LCD countdown look*/
    font-size: 80%
    }

    </style>

    <script type="text/javascript">

    /***********************************************
    * Universal Countdown script- © Dynamic Drive (http://www.dynamicdrive.com)
    * This notice MUST stay intact for legal use
    * Visit http://www.dynamicdrive.com/ for this script and 100s more.
    ***********************************************/

    function cdLocalTime(container, offsetMinutes, targetdate, debugmode){
    if (!document.getElementById || !document.getElementById(container)) return
    this.container=document.getElementById(container)
    var servertimestring='<%= DateTime.Now() %>'
    this.localtime=this.serverdate=new Date(servertimestring)
    this.targetdate=new Date(targetdate)
    this.debugmode=(typeof debugmode!="undefined")? 1 : 0
    this.timesup=false
    this.localtime.setTime(this.serverdate.getTime()+offsetMinutes*60*1000) //add user offset to server time
    this.updateTime()
    }

    cdLocalTime.prototype.updateTime=function(){
    var thisobj=this
    this.localtime.setSeconds(this.localtime.getSeconds()+1)
    setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
    }

    cdLocalTime.prototype.displaycountdown=function(baseunit, functionref){
    this.baseunit=baseunit
    this.formatresults=functionref
    this.showresults()
    }

    cdLocalTime.prototype.showresults=function(){
    var thisobj=this
    var debugstring=(this.debugmode)? "<p style=\"background-color: #FCD6D6; color: black; padding: 5px\"><big>Debug Mode on!</big><br /><b>Current Local time:</b> "+this.localtime.toLocaleString()+"<br />Verify this is the correct current local time, in other words, time zone of count down date.<br /><br /><b>Target Time:</b> "+this.targetdate.toLocaleString()+"<br />Verify this is the date/time you wish to count down to (should be a future date).</p>" : ""

    var timediff=(this.targetdate-this.localtime)/1000 //difference btw target date and current date, in seconds
    if (timediff<0){ //if time is up
    this.timesup=true
    this.container.innerHTML=debugstring+this.formatresults()
    return
    }
    var oneMinute=60 //minute unit in seconds
    var oneHour=60*60 //hour unit in seconds
    var oneDay=60*60*24 //day unit in seconds
    var dayfield=Math.floor(timediff/oneDay)
    var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
    var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
    var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
    if (this.baseunit=="hours"){ //if base unit is hours, set "hourfield" to be topmost level
    hourfield=dayfield*24+hourfield
    dayfield="n/a"
    }
    else if (this.baseunit=="minutes"){ //if base unit is minutes, set "minutefield" to be topmost level
    minutefield=dayfield*24*60+hourfield*60+minutefield
    dayfield=hourfield="n/a"
    }
    else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
    var secondfield=timediff
    dayfield=hourfield=minutefield="n/a"
    }
    this.container.innerHTML=debugstring+this.formatresults(dayfield, hourfield, minutefield, secondfield)
    setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
    }

    /////CUSTOM FORMAT OUTPUT FUNCTIONS BELOW//////////////////////////////

    //Create your own custom format function to pass into cdLocalTime.displaycountdown()
    //Use arguments[0] to access "Days" left
    //Use arguments[1] to access "Hours" left
    //Use arguments[2] to access "Minutes" left
    //Use arguments[3] to access "Seconds" left

    //The values of these arguments may change depending on the "baseunit" parameter of cdLocalTime.displaycountdown()
    //For example, if "baseunit" is set to "hours", arguments[0] becomes meaningless and contains "n/a"
    //For example, if "baseunit" is set to "minutes", arguments[0] and arguments[1] become meaningless etc

    //1) Display countdown using plain text
    function formatresults(){
    if (this.timesup==false){//if target date/time not yet met
    var displaystring="<span style='background-color: #CFEAFE'>"+arguments[1]+" hours "+arguments[2]+" minutes "+arguments[3]+" seconds</span> left until launch time"
    }
    else{ //else if target date/time met
    var displaystring="Launch time!"
    }
    return displaystring
    }

    //2) Display countdown with a stylish LCD look, and display an alert on target date/time
    function formatresults2(){
    if (this.timesup==false){ //if target date/time not yet met
    var displaystring="<span class='lcdstyle'>"+arguments[0]+" <sup>days</sup> "+arguments[1]+" <sup>hours</sup> "+arguments[2]+" <sup>minutes</sup> "+arguments[3]+" <sup>seconds</sup></span> left until launch time"
    }
    else{ //else if target date/time met
    var displaystring="" //Don't display any text
    alert("Launch time!") //Instead, perform a custom alert
    }
    return displaystring
    }

    </script></head>
    <body>
    <form id="form1" runat="server">
    <div id="countdown" />
    <script type="text/javascript">
    //cdLocalTime("ID_of_DIV_container", "server_mode", LocaltimeoffsetMinutes, "target_date", "opt_debug_mode")
    //cdLocalTime.displaycountdown("base_unit", formatfunction_reference)

    //Note: "launchdate" should be an arbitrary but unique variable for each instance of a countdown on your page:

    var launchdate=new cdLocalTime("countdown", 0, "July 07, 2007 09:00:00", "debugmode")
    launchdate.displaycountdown("days", formatresults2)
    </script>
    <div>
    Current Time: <asp:Label ID="lbltime" runat="server" />
    </div>
    </form>
    </body>
    </html>

    This is basically a straight forward copy of the code from the site, although I have taken out the php and ssi options as I won't ever be using those.

    As you can see, I have litterally only just started playing with this as there is nothing else on the page yet.

  4. #4
    Join Date
    Dec 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Ok, so I've been having a bit of a closer look, and I think that it is something to do with the following line:

    Code:
    var servertimestring='<%= DateTime.Now() %>'
    When looking at the source of the page, I get:

    Code:
    var servertimestring='26/12/2006 14:05:10'
    I think that from the format of Date used in the target date, the above line should actually show the date as: December 26, 2006 14:05:10

    How do I get the server to return the date in this format? (If that is the problem), or how do I change it to use the format I have?

  5. #5
    Join Date
    Mar 2006
    Location
    Illinois, USA
    Posts
    12,164
    Thanks
    265
    Thanked 690 Times in 678 Posts

    Default

    (Note: I don't know ASP, so not sure on this one. Someone should know soon.)
    Daniel - Freelance Web Design | <?php?> | <html>| español | Deutsch | italiano | português | català | un peu de français | some knowledge of several other languages: I can sometimes help translate here on DD | Linguistics Forum

  6. #6
    Join Date
    Dec 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    right, I have found the problem, it is to do with the formatting that ASP seems to return, this may just be the setup on my pc, but the fix is:

    Code:
    var servertimestring='<%= Format$(DateTime.Now(), "MMMM dd, yyyy HH:mm:ss") %>'
    as mentioned before, I have taken out the SSI and PHP support, but for anyone that interested, the original ASP bit is at the end of the line that starts:

    Code:
    var servertimestring=..........PHP..........SSI............, '<%= Now() %>'
    really simple fix, but hope that this helps anyone else that has the problem.

Bookmarks

Posting Permissions

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