laufende Uhrzeit

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

ahja, sinds die augen, geh zu ruhnke

wäre das möglicherweise interessant
http://www.phpbb.de/viewtopic.php?t=177267
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Das mit Ajax zu machen ist eine ganz schlechte Idee, weil du damit den Server unnötig belastest.

Eine praktische Lösung sieht so aus, dass man einmalig die Differenz zwischen Server- und Client-Zeit ermittelt und dann diese zukünftig immer zur Client-Zeit hinzurechnet.

Allerdings stellt sich mir die Frage, wie viele deiner Besucher unbedingt die - dazu noch sekündlich aktualisierte - Serverzeit benötigen.
KB:knigge
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von TLoD »

so nun habe ich es auch hinbekommen.
sau einfach gewesen, ich hatte nur mal wieder nen denkfehler drin.
ich weiß nciht warum, aber ich wollte ständig den code unter php ablegen :lol:

Code: Alles auswählen

?>

<html>
<head>
<script language="JavaScript">
var serverZeit = new Date(0, 0, 0, <?php echo $stunden . ", " . $minuten . ", " . $sekunden;?>);
var LadeZeit = new Date();

function uhrAktualisieren(){
        var aktZeit = new Date();
        var serverAktZeit = new Date(aktZeit.valueOf() - LadeZeit.valueOf() + serverZeit.valueOf());

        var h = serverAktZeit.getHours();
        if  (h <10) {h='0'+h;}
        var m = serverAktZeit.getMinutes();
        if  (m <10) {m='0'+m;}
        var s = serverAktZeit.getSeconds();
        if  (s <10) {s='0'+s;}

        document.getElementById("uhr").innerHTML = h+':'+m+':'+s;
        window.setTimeout('uhrAktualisieren()', 1000);
}


</script>
</head>
<body onLoad="countdown(),uhrAktualisieren()">
</body>
</html>
ausgegeben wird das ganze dann einfach mit

Code: Alles auswählen

Time: ".date("d.m.y")." <span id=\"uhr\">".date("H:i:s")."</span>
nun stehe ich jedoch vor einem weiteren problem.
und zwar habe ich mir gleich noch einen countdown gebastelt, welcher mir immer einen timestamp runterzählt. funktioniert soweit alles auch ganz gut nur wie stelle ich es an, wenn ich nun für jede zeile einer tabelle den eintrag mit dem timestamp runterzählen lassen möchte ? ich muss ja iwi definieren, wert_1, wert_2, wert_n. funktioniert das zufällig so ähnlich wie die zählweise in einer highscore für die platznummern, also in etwa so ".($i+1)."?

hier mal der code, den ich zur verfügung habe.

Code: Alles auswählen

<html>
<head>
<?php

// Lese letzten Scan aus
                $sql = "SELECT Datum
                                FROM ".SCANLOGS."
                                ORDER BY Datum DESC;";
                $result = mysql_query($sql) OR die(mysql_error());
                $row = mysql_fetch_assoc($result);
                // nur den ersten (also letzten Eintrag) auslesen
                $date = $row['Datum'];
                $ZeitE = getNextScan($date);

$timestamp = ($ZeitE);

$testausgabe = date("F, j Y H:i:s",$timestamp);

?>
<script language="JavaScript">
var end = new Date("<?PHP echo $testausgabe; ?>");
function toSt2(n) {
  s = "";
  if (n < 10) s += "0";
  return (s + n).toString();
}
function toSt3(n) {
  s = "";
  if (n < 10) s += "00";
  else if (n < 100) s += "0";
  return (s + n).toString();
}
function countdown() {
  d = new Date();
  count = Math.floor(end.getTime() - d.getTime());
  if(count > 0) {
    miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
    seconds = toSt2(count%60); count = Math.floor(count/60);
    minutes = toSt2(count%60); count = Math.floor(count/60);
    hours = toSt2(count%24); count = Math.floor(count/24);
    days = count;
    document.getElementById("c1").innerHTML = hours + ":" + minutes + ":" + seconds
    setTimeout("countdown()", 50);
  }
else
{
    document.getElementById("c1").style.color = "#00FF00";
    document.getElementById("c1").innerHTML = "00:00:00";
    document.getElementById("c1").innerHTML = "jetzt";
}
}
window.onload = function(){
  countdown();
}

</script>
</head>
</html>
evtl. hat ja jemand von euch eine idee oder verbesserungsvorschläge für mich.
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

TLoD hat geschrieben:...ausgegeben wird das ganze dann einfach mit

Code: Alles auswählen

Time: ".date("d.m.y")." <span id="uhr">".date("H:i:s")."</span>
???
Sollte das nicht schon mit

Code: Alles auswählen

 <span id="uhr"></span>
im HMTL Code des Templates erschlagen sein?
Wieso jetzt php-Code?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von TLoD »

jou haste recht - hatte ich wohl übersehen, muss ja nur die formatierung ändern, dann kann ich mich auf das beschränken 8)
Zuletzt geändert von TLoD am 28.10.2008 23:59, insgesamt 1-mal geändert.
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von TLoD »

Ich bekomm noch die kriese mit dem counter.

ich wollte den nun auf der indexseite verbauen aber es funzt nicht.

ich habe den kompletten code nun schon in de overall_header.tpl und auch in der index.php verbaut.

funzen an sich tut der counter schon aber ich bekomme immer eine fehler meldung.
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web77/html/wog/index.php:61) in /var/www/web77/html/wog/includes/page_header.php on line 552

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web77/html/wog/index.php:61) in /var/www/web77/html/wog/includes/page_header.php on line 558

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web77/html/wog/index.php:61) in /var/www/web77/html/wog/includes/page_header.php on line 559
hat einer von euch nen rat?

*EDIT*

ich verwende nur diesen teil des codes:

Code: Alles auswählen

$timestamp = (1226098800);

$testausgabe = date("F, j Y H:i:s",$timestamp);

?>

<html>
<head>
<script language="JavaScript">
var end = new Date("<?PHP echo $testausgabe; ?>");
function toSt2(n) {
  s = "";
  if (n < 10) s += "0";
  return (s + n).toString();
}
function toSt3(n) {
  s = "";
  if (n < 10) s += "00";
  else if (n < 100) s += "0";
  return (s + n).toString();
}
function countdown() {
  d = new Date();
  count = Math.floor(end.getTime() - d.getTime());
  if(count > 0) {
    miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
    seconds = toSt2(count%60); count = Math.floor(count/60);
    minutes = toSt2(count%60); count = Math.floor(count/60);
    hours = toSt2(count%24); count = Math.floor(count/24);
    days = count;
    document.getElementById('c1').innerHTML = days + ' Tage';
    document.getElementById("c2").innerHTML = hours + ":" + minutes + ":" + seconds
    setTimeout("countdown()", 50);
  }
else
{
    document.getElementById("c1").style.color = "#00FF00";
    document.getElementById("c1").innerHTML = "00:00:00";
    document.getElementById("c2").innerHTML = "jetzt";
}
}
window.onload = function(){
  countdown();
}

</script>
</head>
<body onLoad="countdown()">
</body>
</html>
<?php
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Das ist Deine php Datei? Schau Dir mal die Syntax an....

Das ganze sollte mit

Code: Alles auswählen

<?php 
starten und mit enden. So geht das schon mal los.

Such mal evtl. nach Aufbau einer php Datei (gern auch in diesem Forum). :-P
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von TLoD »

das versteh ich nun nicht.
das ne .php mit <?php anfängt und mit ?> aufhört ist mir klar.

aber ich dachte, dass wenn ich in eine solche datei, nen js einbinde, das nicht in <?php ?> setzen muss.

meine .php schau eigentlich so aus <?php ..... ?> das js <?php ..... ?>

so hatte ich das auf meiner externen Seite auch gelöst und da funzt das js 1a und auch der schon vorher vorhandene php code.

in meinem phpbb forum würde es ja eigentlich auch funzen, wenn die oben genannten fehlermeldungen nicht wären. der counter an sich zählt runter und auch das layout und alle phpbb funktionenn sind verfügbar.
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Na gut, dann steht das weiter oben und unten.

Was sagt denn die index.php auf/um Zeile 61?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von TLoD »

ab zeile 61 beginnt das js mit <html>

ich werde wenn ich später heim komme mal meine index.php anhängen.

wie würdest du denn den code einbinden?

ich habe es versucht mit alles in die index.php und auch mit alles in die overall_header.tpl. dann habe ich es auch noch versucht mit js in den header und aufrufen über index.php (onload...) und andersrum, sprich alles in die index.php und im header dann onload.....

wenn ich es alles in einer datei packe kommt zwar keine fehlermeldung aber der counter läuft nicht bzw steht auf null, also abgelaufen bis datum X.
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Antworten

Zurück zu „Coding & Technik“