Javascript "let date = new Date; " liefert falsches DAtum

Waschlos?

Ensign
Registriert
Feb. 2016
Beiträge
192
|GELÖST
Der Einbindezeitpunkt des Javascripts war falsch.|


Habe folgenden code (ich kann leider kein javascript)

let date = new Date;
let seconds = date.getSeconds();
let minutes = date.getMinutes();
let hours = date.getHours();
let today = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();
$(".hours1").css("transform", rotateZ(${30*hours}deg));
$(".minutes1").css("transform", rotateZ(${6*minutes}deg));
$(".seconds1").css("transform", rotateZ(${6*seconds}deg));

In Verbindung mit einer Uhr, mit Zeigern. Und ich habe festgestellt, das sie auf meinem Server so wie ich den Eindruck habe, immer nur von 15 - 16 Uhr läuft und nicht wie gewünscht einfach immer die liveuhrzeit anzeigt. Lokal und bei wem anders klappt es wie gewünscht. Ich hätte es jetzt auf den Server geschoben. Weis nicht ob die Sysstemzeit über den Befehl in ssh: "timedateect1" was zu bedeuten hat:

Local time: Fr 2021-08-06 18:33:47 CEST
Universal time: Fr 2021-08-06 16:33:47 UTC
RTC time: Fr 2021-08-06 16:33:48
Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
NTP service: inactive
RTC in local TZ: no


Danke :)
 
Zuletzt bearbeitet:
Die Serverzeit ist Javascript egal. Wenn du in JS ein Datum erzeugst wird die Zeit vom Client ausgelesen weil JS im Client ausgeführt wird.

Solange "Server" bei dir kein lokaler Pi mit Bildschirm ist, dann ist der Server aber auch der Client.
In dem Fall mal gucken welche Zahl in hours steht indem du das in die Konsole loggst.
 
In der Konsole im Brower damit du siehst was in hours drinnen steht wenn du die Rotation setzt.
Die Rotation vom Stunden-Zeiger ist hours * 30, wenn also irgendwie komisch gedreht wird sollte ja was mit hours nicht stimmen.
 
@Joshinator irgendwie stehe ich aufm schlauch. hours 30* steht in der datei, im browser werden folgende DInge angezeigt:
.hours-container1 {
  1. animation: rotate1 43200s infinite linear;
    1. animation-duration: 43200s;
    2. animation-timing-function: linear;
    3. animation-delay: 0s;
    4. animation-iteration-count: infinite;
    5. animation-direction: normal;
    6. animation-fill-mode: none;
    7. animation-play-state: running;
    8. animation-name: rotate1;
}


und
transform: rotateZ(

450deg
);

Wenn ich neulade fängt es auf jeden FAll immer wieder kurz nach 15 uhr an. Allerdings habe ich auch den Eindruck das das js gar nicht benutrzt wird. wenn ich es lösche dann ändert sich nix ^^. ABer kann ja eigentlich nicht sien, weild er Mauszeiger sich dreht.


teil des css:

@keyframes rotate1 {
100% { transform: rotateZ(360deg); }
}
.hours-container1 {
animation: rotate1 43200s infinite linear;
}
.minutes-container1 {
animation: rotate1 3600s infinite steps(60);
}

.seconds-container1 {
animation: rotate1 60s infinite steps(60);
}
 
Zuletzt bearbeitet:
Wird denn jQuery auf dem Server geladen richtig geladen bevor du die Rotation basierend auf der aktuellen Zeit setzt?
Lokal muss man meist nicht auf jQuery warten, online müssen aber erst die KB geladen werden und da kann es dazu kommen das dein Code ausgeführt ist bevor jQuery da ist.
In der Konsole solltest du was Richtung „$ is undefined“ finden.
Passt zumindest zu „JS wird auf dem Server nicht ausgeführt“ und „lokal geht das“.

Wenn das nicht das Problem ist: poste mal den ganzen Code, also HTML, CSS und JS (im Code-Format damit das auch sauber lesbar auf CB ist). Bei den Ausschnitten muss man einfach zu viel raten wie das alles zusammengesetzt ist.
 
  • Gefällt mir
Reaktionen: Waschlos?
@Joshinator Ich möchte jetzt nix falsches erzählen aber:
Ich hatte das js im:

includeJS

jetzt habe ich es im
includeJSFooterlibs

Es scheint jetzt zu gehen. Das mit dem Ladezeitpunkt war wohl das Problem. Also im Grunde was du eben über zuerst oder danach laden gesagt hast und mich dadurch auf die Idee gebracht :).
 
Zurück
Oben