1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

PHP / Javascript clock problem

Discussion in 'JavaScript' started by mameha1977, Dec 4, 2007.

  1. #1
    I got some code that makes a clock that shows the time. if you choose a region it shows the time in that region. I am using PHP to get the server time to use as the base time. It works fine for me here in Japan, but if a user in Germany looks at the clock the time goes totally wrong. This is confusing because it is using the server time.

    Can anyone spot where the problem is?

    
    <?php
    
    echo '
    <html>
    <head>
     
    </head>
    <body>
    <table border="0" width="200" cellspacing="0" cellpadding="3">
    <form name="where">
      <tr>
        <td width="100%">
    <select name="city" size="1" onchange="updateclock(this);">
    <option value="" selected>--select timezone--</option>
    <option value="-6">USA: Houston</option>
    <option value="-5">USA: Charlotte</option>
    <option value="-3">Argentina</option>
    <option value="0">U.K. (GMT)</option>
    <option value="1">France / Germany</option>
    <option value="8">Singapore / China</option>
    <option value="9">Japan / Korea</option>
    <option value="11">Sydney</option>
    </select>
    
    </td>
      </tr>
      <tr>
        <td width="100%">';
       
    //  now=new Date();  
    $now = date("Y/n/d/H/i/s", time());
    
    echo '
    <script language="JavaScript">
    
    /*
    Drop Down World Clock- By JavaScript Kit (http://www.javascriptkit.com)
    Portions of code by Kurt @ http://www.btinternet.com/~kurt.grigg/javascript
    This credit notice must stay intact
    */
    
    if (document.all||document.getElementById)
    document.write(\'<span id="worldclock" style="font:bold 16px Arial;"></span><br>\')
    
    zone=0;
    isitlocal=true;
    ampm=\'\';
    
    function updateclock(z){
    zone=z.options[z.selectedIndex].value;
    isitlocal=(z.options[0].selected)?true:false;
    }
    
    var i = 0;
    function WorldClock(){
    var servDateArray=\''.$now.'\'.split(\'/\');
    var now=new Date(Number(servDateArray[0]),Number(servDateArray[1]),Number(servDateArray[2]),Number(servDateArray[3]),Number(servDateArray[4]),Number(servDateArray[5])+i);
    i++;
    ofst=now.getTimezoneOffset()/60;
    secs=now.getSeconds();
    sec=-1.57+Math.PI*secs/30;
    mins=now.getMinutes();
    min=-1.57+Math.PI*mins/30;
    hr=(isitlocal)?now.getHours():(now.getHours() + parseInt(ofst)) + parseInt(zone);
    hrs=-1.575+Math.PI*hr/6+Math.PI*parseInt(now.getMinutes())/360;
    if (hr < 0) hr+=24;
    if (hr > 23) hr-=24;
    ampm = (hr > 11)?"PM":"AM";
    statusampm = ampm.toLowerCase();
    
    hr2 = hr;
    if (hr2 == 0) hr2=12;
    (hr2 < 13)?hr2:hr2 %= 12;
    if (hr2<10) hr2="0"+hr2
    
    var finaltime=hr2+\':\'+((mins < 10)?"0"+mins:mins)+\':\'+((secs < 10)?"0"+secs:secs)+\' \'+statusampm;
    
    
    if (document.all)
    worldclock.innerHTML=finaltime
    else if (document.getElementById)
    document.getElementById("worldclock").innerHTML=finaltime
    else if (document.layers){
    document.worldclockns.document.worldclockns2.document.write(finaltime)
    document.worldclockns.document.worldclockns2.document.close()
    }
    
    
    setTimeout(\'WorldClock()\',1000);
    }
    
    window.onload=WorldClock
    //-->
    </script>
    
    <!--Place holder for NS4 only-->
    <ilayer id="worldclockns" width=100% height=35><layer id="worldclockns2" width=100% height=35 left=0 top=0 style="font:bold 16px Arial;"></layer></ilayer>
    
    </td>
    </form>
      </tr>
    </table>
    
    </body>
    </html>';
    
    ?> 
    
    PHP:
     
    mameha1977, Dec 4, 2007 IP