Zur Navigation

JS Uhr Problem

1 Isildur

Ich wusste schon warum ich JS nie wirklich mochte aber meine PHP Uhr war mir doch zu statisch. Also hab ich mich an einer JS Uhr versucht die allerdings nicht ganz funktioniert. Das problem liegt im Timeout, der läd die ganze Seite neu und führt dann zu nem Fehler(showtime undefined) aber soweit soll es ja garnicht erst kommen, es soll ja nur jede Sekunde das Datum neu ausgegeben werden, was muss ich dazu ändern?
function showtime () {
var now = new Date();
var day = now.getDate();
var month = now.getMonth()+1;
var year = now.getFullYear();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
document.write(day+"."+month+"."+year+"-"+hours+":"+minutes+":"+seconds);
}
window.setTimeout("showtime()",1000);

27.05.2006 17:45

2 Jörg Kruse

Der Timeout sollte aber mit in die Funktion, sonst bleibt die Uhr sehr schnell stehen?

Der Fehler scheint aber irgendwie noch am document.write zu hängen - mit dem Belegen des Wertes eines Input-Feldes funktioniert die Uhr:

function showtime () {
var now = new Date();
var day = now.getDate();
var month = now.getMonth()+1;
var year = now.getFullYear();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
document.uhr.anzeige.value = day+"."+month+"."+year+"-"+hours+":"+minutes+":"+seconds;
window.setTimeout("showtime()",1000);
}

<body onload="showtime()">
<form name="uhr">
<input name="anzeige">
</form>

27.05.2006 22:15 | geändert: 27.05.2006 22:16

3 Rudy

oder so:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Watch</title>
</head>
<script type="text/javascript">
  function showtime() {
    var now = new Date();
    var day = now.getDate();
    day = (day < 10) ? "0"+day : day;
    var month = now.getMonth()+1;
    month = (month < 10) ? "0"+month : month;
    var year = now.getFullYear();
    var hours = now.getHours();
    hours = (hours < 10) ? "0"+hours : hours;
    var minutes = now.getMinutes();
    minutes = (minutes < 10) ? "0"+minutes : minutes;
    var seconds = now.getSeconds();
    seconds = (seconds < 10) ? "0"+seconds : seconds;
    document.getElementById('watch').innerHTML = day+"."+month+"."+year+"-"+hours+":"+minutes+":"+seconds;
  }
  window.setInterval('showtime()',1000);
</script>
<body>
<div id="watch"></div>
</body>
</html>

27.05.2006 22:22 | geändert: 01.02.2007 19:06

4 Isildur

Danke der Code sieht jetzt so aus
<script language="JavaScript">
<!--
function showtime () {
var now = new Date();
var day = now.getDate();
var month = now.getMonth()+1;
var year = now.getFullYear();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
if (day <= 9) {
    day = "0"+date;
  }
if (month <= 9) {
    month = "0"+month;
  }
if (hours <= 9) {
    hours = "0"+hours;
  }
if (minutes <= 9) {
    minutes = "0"+minutes;
  }
if (seconds <= 9) {
    seconds = "0"+seconds;
  }
document.getElementById('showtime').innerHTML = day+"."+month+"."+year+"  "+hours+":"+minutes+":"+seconds;
}
window.setInterval('showtime()',1000);
showtime();
//-->
</script>
<noscript><?php
$day = date('w');
$tag = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
echo $tag[$day].", ".date("d.m.Y-H:i");
?></noscript>
<span id="showtime"></span>
Eine Frage noch gibt es bei Javascript auch sowas wie date('w'), dass den Wochentag ausgibt?

28.05.2006 02:00

5 Rudy

Eine Frage noch gibt es bei Javascript auch sowas wie date('w'), dass den Wochentag ausgibt?
Nein, aber es gibt getDay():

[...]
var now = new Date;
var days = ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"];
var day = now.getDay();
var dayofweek = days[day];
[...]

Siehe auch : Date-Objekt

28.05.2006 11:53 | geändert: 28.05.2006 11:57

6 Isildur

Vielen Dank. Funktioniert alles jetzt gibts zumindest für alle die Javascript erlaubt haben eine dynamische Uhr :).

28.05.2006 14:10

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]