Jag har ställt frågan för ganska längesen men fick inget svar, jag kanske inte lämnade tillräckligt med information.. Men iallafall, jag har den här koden:
<script type="text/javascript">
var ds = "2004-10-27 21:40:26";
function f() {
var d = new Date(ds.replace(/-/g,"\/")),
c = new Date(),
hf = (c - d) / 3600000;
ha = Math.floor(hf),
mf = 60 * (hf - ha),
ma = Math.floor(mf);
document.getElementById("time").innerHTML =
ha + " tim " + ma + " min " + Math.floor(60 * (mf - ma)) + " sek";
}
window.setInterval("f()", 960);
</script>
<span id="time"></span>
På min sida för att räkna hur lång tid det har gått sen en viss tidpunkt. Själva tidpunkten är dynamisk, jag har koden i ett PHP-dokument. Det fungerar, fast sekunderna "tickar" inte uppåt, och det står "Fel på sidan" i statusraden.
Allra enklast vore det nog att låta PHP skriva ut tiden som ett UNIX timestamp, lägga till tre nollor eftersom JavaScript vill ha tiden i millisekunder istället för sekunder och sköta det hela utanför funktionen.
T ex:
<script type="text/javascript">
var ds = "<?php echo time(); ?>000";
var d = new Date(ds);
function f() {
var c = new Date(),
hf = (c - d) / 3600000;
ha = Math.floor(hf),
mf = 60 * (hf - ha),
ma = Math.floor(mf);
document.getElementById("time").innerHTML =
ha + " tim " + ma + " min " + Math.floor(60 * (mf - ma)) + " sek";
}
window.setInterval("f()", 960);
</script>