JavaScript in PHP umwandeln
Nordmann
- php
Hallo zusammen,
ich möchte folgenden Javascript code in php umsetzen, komme aber irgenwie total nicht damit klar. Kann mir jemand von Euch hier bitte Helfen?!
Danke und noch einen schönen Sonntag für Euch!
<script type="text/javascript">
var VollmondText
Heute = new Date();
Heute.setTime(Heute.getTime() + (Heute.getTimezoneOffset()*60*1000));
var blaueMondZeit = new Date(96, 1, 3, 16, 15, 0);
var mondPeriode = 29*(24*3600*1000) + 12*(3600*1000) + 44.05*(60*1000);
var mondPhasenZeit = (Heute.getTime() - blaueMondZeit.getTime()) % mondPeriode;
var Korrektur = (Heute.getTime() % 86400000);
var Vollmond = Math.floor((mondPeriode-mondPhasenZeit+Korrektur)/(24*3600*1000))+1;
if (Vollmond == 0) {VollmondText="<br> Heute ist Vollmond.<br><br>"}
if (Vollmond == 1) {VollmondText="<br> Morgen ist Vollmond.<br><br>"}
if (Vollmond > 2) {VollmondText="<br> Der nächste Vollmond ist in <b>" + Vollmond + "</b> Tagen.<br><br>"}
document.write(VollmondText);
</script>
Ich möchte das das Script nicht unter auf der Client Seite läuft, sonder auf der Serverseite, deshalb der Act!
Gruß
Der Nordmann
Guten Tag,
ich möchte folgenden Javascript code in php umsetzen, komme aber irgenwie
total nicht damit klar. Kann mir jemand von Euch hier bitte Helfen?!
Danke und noch einen schönen Sonntag für Euch!
Was hast du denn bisher getan, um das Skript in PHP neu zu schreiben?
Die Datumsfunktionen bieten einen guten Einstieg.
Gruß
Christoph Jeschke
Im Augenblick stehe ich wie der Ochs vorm Tor.
Bei den Berechnungen der Datum Formatierungen blick ich nicht durch.
Heute.setTime(Heute.getTime() + (Heute.getTimezoneOffset()*60*1000));
var blaueMondZeit = new Date(96, 1, 3, 16, 15, 0);
var mondPeriode = 29*(24*3600*1000) + 12*(3600*1000) + 44.05*(60*1000);
var mondPhasenZeit = (Heute.getTime() - blaueMondZeit.getTime()) % mondPeriode;
var Korrektur = (Heute.getTime() % 86400000);
var Vollmond = Math.floor((mondPeriode-mondPhasenZeit+Korrektur)/(24*3600*1000))+1;
Ich kenne mich da leider noch zu wenig aus, um die Sache in PHP umzusetzen.
Hi,
Im Augenblick stehe ich wie der Ochs vorm Tor.
Bei den Berechnungen der Datum Formatierungen blick ich nicht durch.
Das fuegt deiner urspruenglichen "Problembeschreibung" kaum etwas weiteres wissenwertes hinzu.
Ich kenne mich da leider noch zu wenig aus, um die Sache in PHP umzusetzen.
Dann analysiere zunaechst das JavaScript, so dass du das, was dieses macht, umgangssprachlich beschreiben kannst.
Danach duerfte die Umsetzung in einer anderen Sprache dann auch leichter fallen.
MfG ChrisB
Hi,
Heute.setTime(Heute.getTime() + (Heute.getTimezoneOffset()*60*1000));
var blaueMondZeit = new Date(96, 1, 3, 16, 15, 0);
es nützt nicht, den Javascript-Code zu wiederholen, den Du durch PHP ersetzen willst, ohne weiter Deine Probleme zu konkretisieren. Ich nehme mal an, Du hast in der PHP-Doku inzwisch die fraglichen Methoden durchgelesen, also:
time(), date(), mktime(), floor()?
Wenn nicht, schlage ich vor, Du holst das nach, und fragst dann, was Du nicht verstanden hast.
Gruesse, Joachim
Hallo Nordmann,
ein paar kleine Erklärungen ...
var blaueMondZeit = new Date(96, 1, 3, 16, 15, 0);
der 3. Februar 1996 war Vollmond (sollte es zumindest sein, nach meinen Quellen war es der 4.2. gegen Mitternacht) Warum die Variable "blaueMondZeit" heißt ist aber rätselhaft. Ein Blue Moon ist etwas anderes.
var mondPeriode = 29*(24*3600*1000) + 12*(3600*1000) + 44.05*(60*1000);
Die synodische Periode (die Zeitspanne zwischen zwei gleichen Mondphasen) im Mittel: 29 Tage, 12 Stunden, 44 Minuten
var mondPhasenZeit = (Heute.getTime() - blaueMondZeit.getTime()) % mondPeriode;
Heute - dem Bezugsvollmond % Umlaufzeit (jeweils in Millisekunden)
var Korrektur = (Heute.getTime() % 86400000);
getTime() liefert Millisekunden, weiterrechnen mit Tagen
var Vollmond = Math.floor((mondPeriode-mondPhasenZeit+Korrektur)/(24*3600*1000))+1;
Die Tage nach Vollmond ...
Einem Astronomen dreht sich bei dieser Berechnung allerdings der Magen um. Aufgrund von Bahnschwankungen und der elliptischen Umlaufbahn des Mondes kann die Formel durchaus einen Tag daneben liegen. Ein Bezugsvollmond (siehe 3.2.96) der etwas näher am "heute" liegt reduziert den Fehler etwas.
HTH
Jochen