Forum Moderators: open

Message Too Old, No Replies

Clock Javascript not displaying on Firefox and Netscape

         

wlau

11:05 pm on Nov 8, 2004 (gmt 0)



The following javascript displays date and time of 4 cities. It work fine on IE but does not display on Netscape 8 and Mozilla Firefox. Anyone knows what's wrong with this script? Thanks!

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Main</title>
<link rel="stylesheet" type="text/css" href="master.css">
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var timerID ;

function tzone(tz, os, ds, cl)
{
this.ct = new Date(0) ;// datetime
this.tz = tz ;// code
this.os = os ;// GMT offset
this.ds = ds ;// has daylight savings
this.cl = cl ;// font color
}

function UpdateClocks()
{
var ct = new Array(
new tzone('Austin', -6, 1, 'black'),
new tzone('Bangalore', +5.5, 0, 'black'),
new tzone('Tokyo', +9, 0, 'black'),
new tzone('Brussels', +1, 1, 'black')
) ;

var dt = new Date() ;// [GMT] time according to machine clock
var startDST = new Date(dt.getFullYear(), 3, 1) ;
while (startDST.getDay()!= 0)
startDST.setDate(startDST.getDate() + 1) ;

var endDST = new Date(dt.getFullYear(), 9, 31) ;
while (endDST.getDay()!= 0)
endDST.setDate(endDST.getDate() - 1) ;

var ds_active ;// DS currently active
if (startDST < dt && dt < endDST)
ds_active = 1 ;
else
ds_active = 0 ;

// Adjust each clock offset if that clock has DS and in DS.
for(n=0 ; n<ct.length ; n++)
if (ct[n].ds == 1 && ds_active == 1) ct[n].os++ ;

// compensate time zones
gmdt = new Date() ;
for (n=0 ; n<ct.length ; n++)
ct[n].ct = new Date(gmdt.getTime() + ct[n].os * 3600 * 1000) ;

document.all.Clock0.innerHTML =
'<b>' + ct[0].tz + '</b>' + '<br>' + DateString(ct[0].ct) + '<br>' + TimeString(ct[0].ct);

document.all.Clock1.innerHTML =
'<b>' + ct[1].tz + '</b>' + '<br>' + DateString(ct[1].ct) + '<br>' + TimeString(ct[1].ct);

document.all.Clock2.innerHTML =
'<b>' + ct[2].tz + '</b>' + '<br>' + DateString(ct[2].ct) + '<br>' + TimeString(ct[2].ct);

document.all.Clock3.innerHTML =
'<b>' + ct[3].tz + '</b>' + '<br>' + DateString(ct[3].ct) + '<br>' + TimeString(ct[3].ct);

timerID = window.setTimeout("UpdateClocks()", 1001) ;
}

function ClockString(dt)
{
var stemp, ampm ;
var dt_year = dt.getUTCFullYear() ;
var dt_month = dt.getUTCMonth() + 1 ;
var dt_day = dt.getUTCDate() ;
var dt_hour = dt.getUTCHours() ;
var dt_minute = dt.getUTCMinutes() ;
var dt_second = dt.getUTCSeconds() ;

dt_year = dt_year.toString() ;
if (0 <= dt_hour && dt_hour < 12)
{
ampm = 'AM' ;
if (dt_hour == 0) dt_hour = 12 ;
} else {
ampm = 'PM' ;
dt_hour = dt_hour - 12 ;
if (dt_hour == 0) dt_hour = 12 ;
}

if (dt_minute < 10)
dt_minute = '0' + dt_minute ;

if (dt_second < 10)
dt_second = '0' + dt_second ;

stemp = dt_month + '/' + dt_day + '/' + dt_year.substr(2,2) ;
stemp = stemp + ' ' + dt_hour + ":" + dt_minute + ":" + dt_second + ' ' + ampm ;

return stemp ;
}

function DateString(dt)
{
var stemp;
var dt_year = dt.getUTCFullYear() ;
var dt_month = dt.getUTCMonth();
var dt_date = dt.getUTCDate() ;
var dt_day = dt.getUTCDay() ;

day = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
month = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
stemp = day[dt_day] + ' ' + month[dt_month] + ' ' + dt_date + ', ' + dt_year;

return stemp ;
}

function TimeString(dt)
{
var stemp, ampm ;
var dt_hour = dt.getUTCHours() ;
var dt_minute = dt.getUTCMinutes() ;
var dt_second = dt.getUTCSeconds() ;

if (0 <= dt_hour && dt_hour < 12)
{
ampm = 'AM' ;
if (dt_hour == 0) dt_hour = 12 ;
} else {
ampm = 'PM' ;
dt_hour = dt_hour - 12 ;
if (dt_hour == 0) dt_hour = 12 ;
}

if (dt_minute < 10)
dt_minute = '0' + dt_minute ;

if (dt_second < 10)
dt_second = '0' + dt_second ;

stemp = dt_hour + ":" + dt_minute + ":" + dt_second + ' ' + ampm ;

return stemp ;
}
// End -->
</script>
</head>
<body onLoad="UpdateClocks()">
<div>
<p><B>World Clock</B></p>
<table border="0" cellspacing="0" width="100%">
<TR>
<td ID="Clock0" width="25%" > </td>
<td ID="Clock1" width="25%" > </td>
<td ID="Clock2" width="25%" > </td>
<td ID="Clock3" width="25%" > </td>
</tr>
</table>
<BR>
<BR>
</div>
</body>
</html>

crashomon

12:35 am on Nov 9, 2004 (gmt 0)

10+ Year Member



It loads fine and works okay in mozilla 1.0 preview release for me. (windows XP) no style sheet used, so maybe thats a problem?

encyclo

1:04 am on Nov 9, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Welcome to WebmasterWorld [webmasterworld.com], wlau.

It works just fine for me using Mozilla Firefox 1.0PR on Linux, so as crashomon has suggested, the problem may well lie elsewhere within your page.