Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Serverzeit mit Javascript

Frage Entwicklung JavaScript

Mitglied: felixcc

felixcc (Level 1) - Jetzt verbinden

03.03.2011, aktualisiert 15:56 Uhr, 6700 Aufrufe, 7 Kommentare

Hallo ihr Lieben,

ich habe mal wieder ein Problem.
Ich möchte mit Javascript auf einer Seite die aktuelle Serveruhrzeit sekundengenau darstellen (und für weitere Abläufe verwenden).

Da Javascript Client-Seitig läuft liefert ein "new Date()" leider nur die Client Daten wie Datum und Uhrzeit.

Nun habe ich einen Ansatz gefunden, der mit einem php-Statement die aktuelle Serverzeit auslist und dann manuel die Zeit weiterzählen lässt.
Funktioniert, aber von genauer Uhrzeit kann man nicht reden, da ein sleep-Timer verwendet wird, der mir schon nach 2 Minuten um 5 Sekunden falsch geht.

Aber man kann ja die Serverzeit mit php auslesen, mit der Client-zeit vergleichen und dann immer von der Clientzeit die Differenz abziehen.
Läuft auch soweit, aber nur unter Linux mit Firefox, unter Windows bekomme ich schon beim Konvertieren des Datumsstrings als Ausgabe "NaN".
Ich habe viele Verschiedene Formatierungen der Ausgabe von date unter php durchprobiert, aber nur bei "Y,m,d,G:i:s" funktioniert auch eine Umwandlung.
Anbei mal die wichtigen Passagen:

im HTML:
.....
<body onload='setDifference(" <?php echo date("Y,m,d,G:i:s"); ?>")'>
....
<span id="Zeitbereich"></span>
...

in der Javascript-Datei:

var diff = 0; Globale Variable Diff wird mit setDifference auf Abweichung server-clientZeit gesetzt
var uhr = new Date();
Globale Variable Uhr
function setDifference(servertimeString)
{
alert(uhr); <---- Zeigt im IE und FF die aktuellen Client-Daten
servertime = new Date(servertimeString)
alert(servertime);
<--------Im FF stehen die Serverdaten im IE "NaN"
diff = Number(servertime)-Number(uhr);
alert(diff); //<------ FF: "-243" IE:"NaN"#
showTime();
}

function showTime()
{
.....
document.getElementById("Zeitbereich").innerHTML= uhr;
t = settimeout('showTime()',500);
}



Könnt ihr mir sagen woran es liegt, dass es im FF klappt und im IE nicht?
Gibt es vielleich bessere Varianten soetwas zu realisieren?
Mitglied: redder
03.03.2011 um 14:54 Uhr
Hi,
ich habe gerade ein kleines Problem mit deinem Quellcode

Am Anfang führst du die Funktion "uhrzeit()" aus und übergibst die Serveruhrzeit mit PHP.
Wo genau ist die Funktion "uhrzeit()" definiert?

Ansonsten fallen mir als erstes die IE Sicherheitseinstellungen ein. Ist Javascript aktiviert etc.?

Hier auch noch ein Link wo ziemlich genau das gemacht wird was du haben willst:
http://www.webmaster-resource.de/uhrzeit-des-webservers-mit-javascript- ...
Bitte warten ..
Mitglied: felixcc
03.03.2011 um 15:00 Uhr
hallo,
das mit der uhrzeit() war ein Kopierfehler
habes geändert in showTime(), dann kann man es auch nachvollziehen

Die restlichen Javascript-Befehle werden ohne Probleme ausgeführt, also liegt es nicht am IE.

Den Link hatte ich auch schon gefunden, da gefällt mir allerdings nicht, dass das mit einem Timer realisiert wurde.
Das führt realtiv schnell zu rapiden Abweichungen.

Gruß
Felix
Bitte warten ..
Mitglied: redder
03.03.2011 um 15:39 Uhr
Hi,
so richtig schlau werde ich aus deinem Code immer noch nicht^^

uhrzeit() steht immer noch im onLoad
Wann genau wird setDifference(servertimeString) aufgerufen?

Bei der Beschreibung deines Problemes denke ich, dass bei der Datumsübertragung von PHP zu Javascript zu einem Problem kommt.
Hast du evtl. irgendwo ein Schreibfehler der von Firefox ignoriert wird, mit dem der IE aber nicht umgehen kann?
Bitte warten ..
Mitglied: felixcc
03.03.2011 um 15:59 Uhr
So jetzt aber...

das kommt davon wenn man während man seine Frage formuliert noch im Quelltext rumprobiert...

Das Problem liegt daran, dass im Firefox ein String mit dem Format "2011,03,03,15:57:22" in Javascript in ein Date umgewandelt werden kann und im IE da nur NaN draus macht.

Wenn also Jemand weiß in welchem Format ein Datum auch unter dem IE mit Javascript zu einem Date geparst werden kann, wäre ich sehr dankbar.


Bezüglich Schreibfehler habe ich auch schon rumgeguckt, aber ncihts finden können..
Bitte warten ..
Mitglied: Arano
03.03.2011 um 16:09 Uhr
Moin moin,

"< code> some JS </code >" - Code-Tags wären nicht schlecht !

ich denke mal das "uhrzeit()" und "setDifference()" die selbe Funktion darstellen sollen...
Außerdem denke ich, dass dein Objektaufruf falsch ist !
w3schools.com - Tutorials - Javascript Date Object
Zitat von www.w3scools.com
There are four ways of instantiating a date:
new Date() // current date and time
new Date(milliseconds) // milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)


~Arano


Edit
Achso, auf selfHTML wird "dateString" als "Monat Tag, Jahr Stunden:Minuten:Sekunden" dargestellt.
http://de.selfhtml.org/javascript/objekte/date.htm
Bitte warten ..
Mitglied: redder
03.03.2011 um 16:13 Uhr
Ok jetzt macht das alles Sinn xD

Mir fällt auf, dass z.B. ein Semikolon hinter servertime = new Date(servertimeString) fehlt.
Ich bin jetzt nicht sicher ob das so auch in deinem Quellcode steht oder nur hier auf der Seite, aber ich würde mal deinen ganzen Quellcode nach diesen Flüchtigkeitsfehlern durchsuchen.
Bitte warten ..
Mitglied: felixcc
03.03.2011 um 16:30 Uhr
Hallihallo,

genau, statt Uhrzeit() heißt es jetzt setDifference().

Bei w3schools habe ich mich auch schon durchgearbeitet und da besteht das Problem, dass der Fall 3 --> (var d3 = new Date(79,5,24,11,33,0) <--- nicht funktioniert (weder ie noch ff)
Bei mir funktioniert es nur wenn ich den String so formatiere: --> new Date(79,5,24,11:33:00) <---- Dann aber nur ff und nicht ie...
und jetzt bin ich halt auf der Suche nach dem Format welches für ie und ff geht, und...

...dank deines Links habe ich auch gerade die Lösung gefunden.
Der erste Fall geht in FF und IE!!
Ich muss jetzt nurnoch mein php statement so anpassen,dass es auch das Datum im folgenden Format ausgibt: "October 13, 1975 11:13:00".

Wenn ich das gefunden habe, poste ich die Lösung und markiere es als gelöst.

Ich danke euch allen für die tolle Unterstützung!

Gruß
Felix

edit:
Lösung:
<?php echo date("F d, Y G:i:s"); ?>
liefert ein Format welches in Javascript in eine Date umgewandelt werden kann und zwar im IE und im FF.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
JavaScript
gelöst Range (Slider) Javascript mit Plus-Minus Buttons (3)

Frage von internet2107 zum Thema JavaScript ...

JavaScript
gelöst JavaScript hochladen (12)

Frage von Patrick-IT zum Thema JavaScript ...

JavaScript
gelöst HTML-Javascript - Auslesen von Formularfeldern (1)

Frage von internet2107 zum Thema JavaScript ...

JavaScript
Javascript Cookie ablaufdatum zurückgeben (1)

Frage von Roadrunner777 zum Thema JavaScript ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...