wieder mal option-tag
-
es gibt nun noch ein neues Problem. Ihr seht ja am obigen Beispiel, das ich das Datum, was in den option-tags auf der seite zu sehen ist, als sekundenwert im value speichere. Nun habe ich aber ein Problem. Wenn ich das Datum auslese, bekommme ich ein anderes. Mal ist es +/- 1 Tag und es sind meistens noch 12 Stunden dabei ! Ich muss das Datum aber so haben, dass exakte Tagwerte rauskommen, ohne Stunden, Minuten, Sekunden..... aber was mache ich denn falsch????
MfGTobsen
-
er kann sich ja einfach z.B. die Seite speichern, etwas ändern und dann neu laden und das Formular verschicken (du könntest, um dies zu verhindern natürlich auch den Referer überprüfen)
Bei deiner Lösung sollte es ansonsten kein Problem geben, es kann nur sein, dass eben am Ende mal ein Tag zuviel ist (stört aber ja wohl nicht)
Ich finde aber eine so lange Auswahlliste nicht gerade übersichtlich und einfach / schnell bedienbar! Du könntest doch auch z.B. ein einfaches Input-Feld nehmen. Dann musst du die Eingabe halt noch parsen und ggf. nachfragen
-
@flenders, bitte auch nochmal auf mein anderes Problem eingehen (weiter oben geschildert).... ich sitz da jetzt schon ewig dran und bin einfach zu blöd es sauber zu lösen....
-
Also ich versteh dein Problem noch nicht so ganz
Bei mir schwankt es nur aufgrund, von Sommer-/Winterzeit mal 1 Stunde nach vorne (1 Uhr), aber das ist ja kein Problem bzw. ließe sich ja auch behebenSchildere nochmal, was genau jetzt nicht funktioniert
-
ich versuchs mal anhand eines Beispiels zu erklären:
Ich wähle in meinem <select>-menu (der code wie ich es erzeuge steht weiter oben) z.B. das Datum 14.03.2003in meiner Datenbank wird dann folgender Sekundenwert gespeichert: 1050274800
Gebe ich den Datenbank-Wert folgendermaßen aus...
<?php
echo date("h:i:s d.m.Y", 1050274800);
?>...bekomme ich als Ergebnis: 01:00:00 14.04.2003
Wie bekomme ich den Stundenwert weg??? Ich will ein Ergebnis ohne Stunden-, Minuten-, Sekundenwert!
MfGTobsen
-
Nimm z.B. einfach gmmktime und gmdate, dann bist du das Problem mit Sommer-/Winterzeit los Oder meinst du was anderes
-
Nein, daran liegt es nicht. Durch Tests habe ich herausgefunden, dass der Fehler in folgendem Codeabschnitt liegen muss!
<SELECT name="arrival_date"> <?php $daystart = gmmktime(0,0,0,date("m"),date("d"), date("Y")); $dayend = gmmktime(0,0,0,date("m"),date("d"), (date("Y")+1)); for($i = $daystart; $i <= $dayend; $i+=86400) { $currentday = date("d.m.Y", $i); echo "<OPTION VALUE='".$i."'>".$currentday."</OPTION>"; } ?> </SELECT>
Ich weiß aber nicht, was daran falsch sein soll!? An mktime liegt es nicht, da ich es schon mit mktime auf anderem Wege versucht haben und da hat es geklappt.
Bitte helft mir. MfGTobsen
-
Ich vermute übrigens, dass es irgendwie mit date() zusammenhängt...
-
Also du musst mir mal erklären, wo bei dir der Fehler auftauch bzw. was anders sein soll Weil bei mir sah es so aus, als ob alles geklappt hätte
-
ich glaube in folgender Zeile ist der Fehler:
$daystart = mktime(0,0,0,date("m"),date("d"), date("Y"));hier bekomme ich ein Ergebnis, welches geteilt durch 86400 (sekunden eines Tages) ein ungerades Ergebnis liefert. Das heißt, dass darin auch noch Stunden, Minuten oder Sekunden enthalten sind und das darf nicht sein, da sonst meine weitere berechnung mit diesen WErten nicht funktioniert.
MfGTobsen
-
Dann nimm halt gmmktime! Bei mir klappt es damit zumindest
-
Mit Zeiten ist es wirklich nicht so einfach.
Durch Winter-Sommerzeit, wird das alles verschoben und durch die verschiedenen Zeitzonen der Erde auch (01.01.1970 war bei uns eine Stunde früher, als zur GMT).
-
ob ich gmktime nehme oder mktime spielt keine Rolle, das Ergebnis bleibt immer gleich falsch. Ich weiß jetzt nimmer, was man noch machen könnt vielleicht folgendes?
$daystart = ((INT)(mktime(0,0,0,date("m"),date("d"), date("Y"))/86400))*86400;
....aber das geht wohl auch net,...oder?
-
Poste nochmal deinen Code mit gmmaketime, weil bei mir kommt bei einem Modulo immer 0 raus
-
das Problem hat sich dank flenders hilfe geklärt. gmmktime ist die Lösung gewesen. Hab da bei meiner Kontrolle en kleinen Fehler gemacht. Trotzdem danke!!