tvoje flashove hodiny su tiez ovplyvnehe lokalnym casom, cize casom na masine, kde sa stranka zobrazuje.
javascript sice moc nemusim, ale nedalo mi to a urobil som script, ktory zoberie serverovy cas a zobrazi ho u uzivatela pri zohladneni jeho casovej zony. samozrejme po requeste sa znovu nacita serverovy cas a znova sa zacne pocitat od neho.
ma to iba jednu chybu a to JavaScriptovy setInterval, ktory reaguje na systemove hodiny. cize ak pocas behu stranky zmenim cas napr o hodinu do predu, tak uz spominana funkcia sa bude sanazit dohnat tuto hodinu. ak do zadu, cas na stranke na hodinu zastane. mozno sa to da nejako osetrit, ale ako som uz spominal, JavaScript moc nemusim.
dufam, ze to niekomu bude na nieco.
Kód: Vybrať všetko
// php subor
<?php
preg_match("/^([+|\-]{1})([0-9]{2})([0-9]{2})$/",date("O"), $matches);
$minut = $matches[1].(((int)$matches[2]*60)+(int)$matches[3]); //*(int)($matches[1].1);
$GMT = date( "m d Y H:i:s", mktime( date("H"), date("i")-$minut) );
?>
<html>
<head>
<title>Hodiny podla servera v kazdej casovej zony</title>
<script type="text/javascript">
var serverTimeString = "<?=$GMT ?>"; //"9 12 2006 13:48:15"; // mesiac den rok ....
var serverTime = Date.parse(serverTimeString);
serverTime = new Date(serverTime);
var localTime = new Date();
var localZone = localTime.getTimezoneOffset();
serverTime.setMinutes(serverTime.getMinutes() - localZone );
function showGoodTime()
{
serverTime.setSeconds(serverTime.getSeconds() + 1);
var hours = serverTime.getHours().toString();
if( hours.length == 1 )
hours = "0" + hours;
var minutes = serverTime.getMinutes().toString();
if( minutes.length == 1 )
minutes = "0" + minutes;
var seconds = serverTime.getSeconds().toString();
if( seconds.length == 1 )
seconds = "0" + seconds;
document.getElementById('clock').innerHTML = hours + ":" + minutes + ":" + seconds;
}
</script>
</head>
<body>
<span id="clock"></span>
<script type="text/javascript">
showGoodTime();
var ourInterval = setInterval("showGoodTime()", 1000);
</script>
</body>
</html>