Uhrzeit und Datum des Webservers dynamisch anzeigen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Uhrzeit und Datum des Webservers dynamisch anzeigen

    Hallo,

    ich hoffe ich bin hier im richtigen Forum.

    Ich habe ein Script das mir die Uhrzeit des Webservers mit Javascript und PHP dynamisch anzeigt.

    PHP-Quellcode

    1. <?php
    2. $Javascriptzeit = date("Y, n, j, G, i, s");
    3. ?>
    4. <html>
    5. <head>
    6. <script language="JavaScript">
    7. <!--
    8. var Serverzeit = new Date(<?php echo$Javascriptzeit; ?>);
    9. function UhrzeitAnzeigen()
    10. {
    11. if(!document.all && !document.getElementById)
    12. {
    13. return;
    14. }
    15. var Stunden = Serverzeit.getHours();
    16. var Minuten = Serverzeit.getMinutes();
    17. var Sekunden = Serverzeit.getSeconds();
    18. Serverzeit.setSeconds(Sekunden+1);
    19. if(Stunden <= 9)
    20. {
    21. Stunden = "0" + Stunden;
    22. }
    23. if(Minuten <= 9)
    24. {
    25. Minuten = "0" + Minuten;
    26. }
    27. if(Sekunden <= 9)
    28. {
    29. Sekunden = "0" + Sekunden;
    30. }
    31. Uhrzeitanzeige = Stunden + ":" + Minuten + ":" + Sekunden;
    32. if(document.getElementById)
    33. {
    34. document.getElementById("Uhrzeit").innerHTML = Uhrzeitanzeige
    35. }
    36. else if(document.all)
    37. {
    38. Uhrzeit.innerHTML = Uhrzeitanzeige;
    39. }
    40. setTimeout("UhrzeitAnzeigen()", 1000);
    41. }
    42. //-->
    43. </script>
    44. <title>Webserver Uhrzeit mit Javascript und PHP dynamisch anzeigen</title>
    45. </head>
    46. <body onLoad="UhrzeitAnzeigen();">
    47. Server Zeit: <span id="Uhrzeit"></span>
    48. </body>
    49. </html>
    Alles anzeigen

    Ausgegeben wird dann das: "Server Zeit: 20:54:05 Uhr
    "
    nun zu meinem Problem(chen)
    Ich hätte aber gerne zusätzlich das Datum, etwa so: "Server Zeit: 23.10.2010 - 20:54:05 Uhr"
    Perfeckt wäre natürlich: "Kalenderwoche 42 - Samstag 23. Oktober 2010 - 20:54:05 Uhr"
    Leider sind meine Programmierfähigkeiten praktisch NOCH nicht vorhanden. So das ich mich auf freie Code Schnippel von anderen verlassen muss. Ich bemühe mich in meiner Freizeit so langsam in HTML Java PHP... einzuarbeiten aber bei so großen Sachen blicke ich einfach noch nicht durch. Ich würde mich freuen wenn mir jemand helfen kann das Script zu vollenden bzw. neu aufzubauen.
    Alles ist möglich. Unmögliches dauert nur etwas länger!
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mue.chris ()

  • Ich führe ja nur ungern selbstgespräche aber ich hab grade mal ein paar codes etwas (unsauber) zusammen geklebt. :whistling:
    Jetzt wird sogar: "Server Zeit: 23.10.2010 - 22:22:51 Uhr" ausgegeben. Die Zeit läuft aber das Datum wird sich natürlich um 00:00 Uhr nicht verändern
    rein Optisch bin ich ja schon mal da wo ich MINDESTENS hin wollte aber das ist mir zufiel gepfusche
    Hier mal den neuen Code

    PHP-Quellcode

    1. <html>
    2. <head>
    3. <script language="JavaScript">
    4. <!--
    5. var Serverzeit = new Date(<?php echo$Javascriptzeit; ?>);
    6. function UhrzeitAnzeigen()
    7. {
    8. if(!document.all && !document.getElementById)
    9. {
    10. return;
    11. }
    12. var Stunden = Serverzeit.getHours();
    13. var Minuten = Serverzeit.getMinutes();
    14. var Sekunden = Serverzeit.getSeconds();
    15. Serverzeit.setSeconds(Sekunden+1);
    16. if(Stunden <= 9)
    17. {
    18. Stunden = "0" + Stunden;
    19. }
    20. if(Minuten <= 9)
    21. {
    22. Minuten = "0" + Minuten;
    23. }
    24. if(Sekunden <= 9)
    25. {
    26. Sekunden = "0" + Sekunden;
    27. }
    28. Uhrzeitanzeige = Stunden + ":" + Minuten + ":" + Sekunden;
    29. if(document.getElementById)
    30. {
    31. document.getElementById("Uhrzeit").innerHTML = Uhrzeitanzeige
    32. }
    33. else if(document.all)
    34. {
    35. Uhrzeit.innerHTML = Uhrzeitanzeige;
    36. }
    37. setTimeout("UhrzeitAnzeigen()", 1000);
    38. }
    39. //-->
    40. </script>
    41. <title>Unsauber zusammen geklebte Codes</title>
    42. </head>
    43. <body onLoad="UhrzeitAnzeigen();">
    44. <div style="text-align: center;">
    45. Server Zeit:
    46. <?php
    47. $timestamp = time();
    48. $datum = date("d.m.Y",$timestamp);
    49. echo $datum," - ";
    50. ?>
    51. <span id="Uhrzeit"></span> Uhr
    52. </div>
    53. </body>
    54. </html>
    Alles anzeigen

    Wie gesagt, ich würde mich freuen wenn mir jemand helfen kann das Script zu vollenden bzw. neu aufzubauen, damit es dann vieleicht so aussieht: Kalenderwoche 42 - Samstag 23. Oktober 2010 - 22:22:51 Uhr
    Zugegeben das mit der Kalenderwoche hab ich bisher auch noch nirgends gesehen aber der Rest ist auf jedenfall machbar :D
    Alles ist möglich. Unmögliches dauert nur etwas länger!
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut!
  • @pokertom
    soweit ich weiß ist es nicht möglich die Zeit mit php "laufen" zu lassen außer man aktualisiert die gesamte Seite ständig was aber eine Menge Traffic verursacht.

    den Code um die Serverzeit mit PHP auszugeben hab ich auch:

    PHP-Quellcode

    1. <?php $timestamp = time();
    2. $datum = date("d.m.Y",$timestamp);
    3. $uhrzeit = date("H:i:s",$timestamp);
    4. echo $datum," - ",$uhrzeit," Uhr";
    5. ?>

    Aber wer will schon dauernd die Seite neu laden da wird man ja selbst im schnellen Intranet ganz zappelig

    @Tim Eipert
    Ajax... habe mal gegoogelt nach "ajax Uhrzeit" das scheint was für mich zu sein, hatte aber noch nicht die Ehre mit ajax da muss ich erst mal weiter googeln. Ist das überhaupt die Serverzeit?

    @Florian
    Ja, genau das ist es wo ich überfordert bin, zu viele Schnippsel. Die selfhtmls kenne ich aber java alleine kann nun mal nicht die Serverzeit auslesen die Kunst ist es mit php die Serverzeit zu hohlen und an Java zu übergeben.
    Ich hoffe eben das mir jemand zeigen kann wo ich was hin schreiben muss weil ich die Vorgänge einfach noch nicht gut genug verstehe.
    Alles ist möglich. Unmögliches dauert nur etwas länger!
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut!
  • Das kannst du dir im Prinzip sparen. Ich würde die Uhrzeit mit Javascript mitlaufen lassen und das ganze einmalig mit der Uhrzeit vom Webserver initialisieren. Dann laufen die Uhren zwar auseinander, aber die Abweichung ist so gering, das merlste kaum. Ajax wird auch nicht genauer sein, da der Webserver die Uhrzeit erst generiert, dann übertragen muss und dann muss das ganze vom Client gerendert werden. Die Verzögerung hängt also da auch von Internetgeschwindigkeit/Latency des Besuchers und minimal von der Rechenpower, die der Browser zu Verfügung hat, ab. Faktoren auf die du im Zweifelsfall keinen Einfluss hast.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • So in etwa:

    Quellcode

    1. var Wochentage = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
    2. var Wochentag = Wochentage[Serverzeit.getDay()];
    3. var Tag = Serverzeit.getDate();
    4. var Monat = Serverzeit.getMonth();
    5. var Jahr = Serverzeit.getFullYear();
    6. [...]
    7. Uhrzeitanzeige = Wochentag + ', ' + Tag + '.' + Monat + '.' + Jahr + ' ' + Stunden + ':' + Minuten + ':' + Sekunden;
  • Sorry ich leide zur Zeit etwas an Zeitmangel werde mir aber das Wiki bei Gelegenheit ansehen.

    @Florian (bist ein Schatz :thumbsup: )
    Ich habe deinen Code mal eben eingebaut aber leider wird mir dann "Server Zeit: Freitag, 26.10.2010 01:05:11 Uhr" angezeigt. (Heute ist Dienstag!) Hab mal direkt im Betriebssystem nachgesehen da wird Dienstag angezeigt, muss also am Script liegen. Das ganze sieht jetzt so aus:

    Quellcode

    1. <?php
    2. $Javascriptzeit = date("Y, n, j, G, i, s");
    3. ?>
    4. <html>
    5. <head>
    6. <script language="JavaScript">
    7. <!--
    8. var Serverzeit = new Date(<?php echo$Javascriptzeit; ?>);
    9. function DatumzeitAnzeigen()
    10. {
    11. if(!document.all && !document.getElementById)
    12. {
    13. return;
    14. }
    15. var Wochentage = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
    16. var Wochentag = Wochentage[Serverzeit.getDay()];
    17. var Tag = Serverzeit.getDate();
    18. var Monat = Serverzeit.getMonth();
    19. var Jahr = Serverzeit.getFullYear();
    20. var Stunden = Serverzeit.getHours();
    21. var Minuten = Serverzeit.getMinutes();
    22. var Sekunden = Serverzeit.getSeconds();
    23. Serverzeit.setSeconds(Sekunden+1);
    24. if(Stunden <= 9)
    25. {
    26. Stunden = "0" + Stunden;
    27. }
    28. if(Minuten <= 9)
    29. {
    30. Minuten = "0" + Minuten;
    31. }
    32. if(Sekunden <= 9)
    33. {
    34. Sekunden = "0" + Sekunden;
    35. }
    36. Datumzeitanzeige = Wochentag + ', ' + Tag + '.' + Monat + '.' + Jahr + ' ' + Stunden + ':' + Minuten + ':' + Sekunden;
    37. if(document.getElementById)
    38. {
    39. document.getElementById("Datumzeit").innerHTML = Datumzeitanzeige
    40. }
    41. else if(document.all)
    42. {
    43. Datumzeit.innerHTML = Datumzeitanzeige;
    44. }
    45. setTimeout("DatumzeitAnzeigen()", 1000);
    46. }
    47. //-->
    48. </script>
    49. <title>Datumzeit des Webservers mit Javascript und PHP dynamisch anzeigen</title>
    50. </head>
    51. <body onLoad="DatumzeitAnzeigen();">
    52. Server Zeit: <span id="Datumzeit"></span> Uhr
    53. </body>
    54. </html>
    Alles anzeigen

    Sieht da jemand einen Fehler? Oder fehlt noch was?? Unsereins kann ja nur kleben :D

    Edit:
    Naja ich habe Zeile 18 einfach etwas umgeschrieben.

    Quellcode

    1. var Wochentage = new Array('Donnerstag', 'Freitag', 'Samstag', 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch');
    Alles ist möglich. Unmögliches dauert nur etwas länger!
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mue.chris ()

  • So ich bin fast am Ziel. Nach einem Google Marathon habe ich jetzt dieses Script gebastelt das mir "Kalenderwoche 43" liefert:

    Quellcode

    1. <script language="JavaScript">
    2. function kalenderwoche(datum){
    3. if(datum){
    4. Datum = datum
    5. Datum = Datum.split(".");
    6. tag1 = Datum[0];
    7. mon1 = Datum[1];
    8. yea1 = Datum[2];
    9. Datum = new Date(yea1,mon1-1,tag1);
    10. } else {
    11. Datum = new Date();
    12. }
    13. DoDat=donnerstag(Datum);
    14. kwjahr=DoDat.getFullYear();
    15. DoKW1=donnerstag(new Date(kwjahr,0,4));
    16. kw=Math.floor(1.5+(DoDat.getTime()-DoKW1.getTime())/86400000/7);
    17. return kw;
    18. }
    19. function donnerstag(datum) {
    20. var Do=new Date();
    21. Do.setTime(datum.getTime() + (3-((datum.getDay()+6) % 7)) * 86400000);
    22. return Do;
    23. }
    24. document.write("Kalenderwoche ");
    25. document.write(kalenderwoche());
    26. </script>
    Alles anzeigen

    Aber wie bekomme ich das jetzt in meine Aktuelle PHP geklebt?

    Quellcode

    1. <?php
    2. $Javascriptzeit = date("Y, n, j, G, i, s");
    3. ?>
    4. <html>
    5. <head>
    6. <script language="JavaScript">
    7. <!--
    8. var Serverzeit = new Date(<?php echo$Javascriptzeit; ?>);
    9. function DatumzeitAnzeigen()
    10. {
    11. if(!document.all && !document.getElementById)
    12. {
    13. return;
    14. }
    15. var Wochentage = new Array('Donnerstag', 'Freitag', 'Samstag', 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch');
    16. var Wochentag = Wochentage[Serverzeit.getDay()];
    17. var Tag = Serverzeit.getDate();
    18. var Monate = new Array ("Dezember","Januar","Februar","März","April","Mai","Juni","Juli","August","Septemper","Oktober","November");
    19. var Monat = Monate[Serverzeit.getMonth()];
    20. var Jahr = Serverzeit.getFullYear();
    21. var Stunden = Serverzeit.getHours();
    22. var Minuten = Serverzeit.getMinutes();
    23. var Sekunden = Serverzeit.getSeconds();
    24. Serverzeit.setSeconds(Sekunden+1);
    25. if(Stunden <= 9)
    26. {
    27. Stunden = "0" + Stunden;
    28. }
    29. if(Minuten <= 9)
    30. {
    31. Minuten = "0" + Minuten;
    32. }
    33. if(Sekunden <= 9)
    34. {
    35. Sekunden = "0" + Sekunden;
    36. }
    37. Datumzeitanzeige = Wochentag + ', ' + Tag + '. ' + Monat + ' ' + Jahr + ' - ' + Stunden + ':' + Minuten + ':' + Sekunden;
    38. if(document.getElementById)
    39. {
    40. document.getElementById("Datumzeit").innerHTML = Datumzeitanzeige
    41. }
    42. else if(document.all)
    43. {
    44. Datumzeit.innerHTML = Datumzeitanzeige;
    45. }
    46. setTimeout("DatumzeitAnzeigen()", 1000);
    47. }
    48. //-->
    49. </script>
    50. <title>Datumzeit des Webservers mit Javascript und PHP dynamisch anzeigen</title>
    51. </head>
    52. <body onLoad="DatumzeitAnzeigen();">
    53. Server Zeit: <span id="Datumzeit"></span> Uhr
    54. </body>
    55. </html>
    Alles anzeigen

    Wäre schön wenn sich jemand erbarmt und mir zeigt wie ich das Script eingebaut bekomme damit es auch mit der Serverzeit läuft und das ganze dann so aussieht:
    "Kalenderwoche 43 - Freitag, 29. Oktober 2010 - 20:54:05 Uhr"
    Alles ist möglich. Unmögliches dauert nur etwas länger!
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut!
  • Wenn ich das so sagen darf: Der Code ist alles andere als schön ;)
    Ich hab ihn mal etwas objektorientiert gemacht, hier die fertige Version:

    Quellcode

    1. <html>
    2. <head>
    3. <title>Serverzeit in JavaScript nutzen</title>
    4. <script type="text/javascript">
    5. // <![CDATA[
    6. function Serverzeit(date) {
    7. this.date = date;
    8. this.kalenderwoche = function() {
    9. var Datum = this.date;
    10. var DoDat = donnerstag(Datum);
    11. var kwjahr = DoDat.getFullYear();
    12. var DoKW1 = donnerstag(new Date(kwjahr,0,4)); // Anm. 2
    13. return Math.floor(1.5+(DoDat.getTime()-DoKW1.getTime())/86400000/7) // Anm. 3, 4
    14. };
    15. function donnerstag(datum) {
    16. var Do = new Date();
    17. Do.setTime(datum.getTime() + (3 - ((datum.getDay() + 6) % 7)) * 86400000);
    18. return Do;
    19. };
    20. this.update = function(dom_id) {
    21. var Datumsanzeige = "";
    22. var Wochentage = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
    23. var Wochentag = Wochentage[this.date.getDay()];
    24. var Tag = this.date.getDate();
    25. var Monate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "Septemper", "Oktober", "November", "Dezember");
    26. var Monat = Monate[this.date.getMonth()];
    27. var Jahr = this.date.getFullYear();
    28. var Stunden = this.date.getHours();
    29. var Minuten = this.date.getMinutes();
    30. var Sekunden = this.date.getSeconds();
    31. this.date.setSeconds(Sekunden + 1);
    32. if (Stunden <= 9) {
    33. Stunden = "0" + Stunden;
    34. }
    35. if (Minuten <= 9) {
    36. Minuten = "0" + Minuten;
    37. }
    38. if (Sekunden <= 9) {
    39. Sekunden = "0" + Sekunden;
    40. }
    41. Datumzeitanzeige = Wochentag + ', ' + Tag + '. ' + Monat + ' ' + Jahr + ' - ' + Stunden + ':' + Minuten + ':' + Sekunden;
    42. Datumzeitanzeige = "Kalenderwoche: " + this.kalenderwoche() + " - " + Datumzeitanzeige;
    43. document.getElementById(dom_id).innerHTML = Datumzeitanzeige
    44. // recursion
    45. setTimeout(function(x, dom_id) {
    46. return function() {
    47. x.update(dom_id);
    48. };
    49. }(this, dom_id), 1000);
    50. };
    51. };
    52. // ]]>
    53. </script>
    54. <title>Datumzeit des Webservers mit Javascript und PHP dynamisch anzeigen</title>
    55. </head>
    56. <body onLoad="var x = new Serverzeit(new Date(<?php echo time() * 1000 ?>)); x.update('Datumzeit');">
    57. Server Zeit: <span id="Datumzeit"></span> Uhr
    58. </body>
    59. </html>
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Torben Brodt () aus folgendem Grund: kleine Fehlerkorrekturen

  • Vielen Dank d0nut!
    Hattest du Gelegenheit das mal zu testen? Irgendwo stimmt etwas nicht z.B. heute (KW 43 Sonntag 31. Oktober 2010 14:34:53 Uhr) zeigt er "Kalenderwoche 48 - Sonntag, 1. November 2010 - 14:34:53 Uhr" ;(. Daraufhin habe ich mal im Server Betriebssystem mit dem Datum gespielt. Manchmal stimmt der Wochentag nicht oder das gesamte Datum (wie heute) und die KW stimmt nie. Das kam mir damals schon komisch vor, weil ich die Wochentage damals schon alle versetzen musste damit es passt. ?(
    Alles ist möglich. Unmögliches dauert nur etwas länger!
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut!
  • ich habe den Code oben aktualisiert.
    Und zwar übergebe ich die Zahl nun als unix timestamp:

    Quellcode

    1. new Date(<?php echo time() * 1000 ?>)


    und das Array beginnt mit Januar statt Dezember:

    Quellcode

    1. var Monate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "Septemper", "Oktober", "November", "Dezember");


    zumindest das aktuelle Datum ist jetzt korrekt ;)
  • ändere Bitte noch Zeile 25

    Quellcode

    1. var Wochentage = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');

    und Zeile 63 den 2. Titel (nach </script>)
    Dann stimmt es (zumindest bei mir)

    Wahrhaft Göttlich! :D Vielen, vielen, vielen Dank! Das hätte ich nicht alleine hin bekommen.
    Ich habe nochmal mit der Systemzeit in der VM gespielt jetzt scheint es wirklich richtig zu Arbeiten streng nach ISO 8601

    Jeden Montag und nur montags beginnt eine neue Kalenderwoche.
    Die erste Kalenderwoche ist diejenige, die mindestens 4 Tage des neuen Jahres enthält.

    Aus diesen Punkten können folgende Eigenschaften geschlussfolgert werden:

    Es gibt keine unvollständigen Kalenderwochen, ausnahmslos jede KW enthält genau 7 Tage.
    Jedes Jahr hat entweder 52 oder 53 Kalenderwochen.
    Ein Jahr hat genau dann 53 Kalenderwochen, wenn es mit einem Donnerstag beginnt oder endet:
    Ein Normaljahr mit 53 Wochen beginnt und endet an einem Donnerstag.
    Ein Schaltjahr mit 53 Wochen beginnt entweder an einem Mittwoch und endet somit mit Donnerstag oder beginnt an einem Donnerstag und endet an einem Freitag.
    Der 4. Januar liegt immer in Kalenderwoche 1.
    Der 29., 30. und 31. Dezember können schon zur ersten Kalenderwoche des Folgejahres gehören.
    Der 1., 2. und 3. Januar können noch in der letzten Kalenderwoche des Vorjahres liegen.
    Der Donnerstag ist ausschlaggebend, zu welchem Jahr die Woche gezählt wird. Liegt er im neuen Jahr, ist es die Kalenderwoche 1.
    (Quelle Wikipedia)


    Dann kann das Thema wohl als gelöst markiert werden, wenn das hier so üblich sein sollte.
    Ich habe die fertige "Uhr.php" nochmal angehängt damit unsere Anstrengungen der Nachwelt zum Download zur Verfügung stehen.
    Dateien
    • Uhr.zip

      (976 Byte, 737 mal heruntergeladen, zuletzt: )
    Alles ist möglich. Unmögliches dauert nur etwas länger!
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut!