wieder mal option-tag
-
Außerdem hast du das Problem mit dem 29. Februar!
Und hast du schonmal an die ungeheuren Datenmengen gedacht, die du da rüberschicken musst? Sowas verdoppelt mal kurz die größe einer Seite.
Eine andere Idee:
Trenne doch Monat und Tag voneinander, dann hast du nur einmal 12 und einmal 31 Auswahlmöglichkeiten. Per JavaScript blendest du bei den entsprechenden Monaten die nicht möglichen Tage aus.Aber Vorsicht: Trotzdem nachher auf Richtigkeit prüfen und eine Korrekturmöglichkeit anbieten, da JavaScript deaktiviert sein könnte.
-
Außerdem hast du das Problem mit dem 29. Februar!
Und hast du schonmal an die ungeheuren Datenmengen gedacht, die du da rüberschicken musst? Sowas verdoppelt mal kurz die größe einer Seite.Eine andere Idee:
Trenne doch Monat und Tag voneinander, dann hast du nur einmal 12 und einmal 31 Auswahlmöglichkeiten. Per JavaScript blendest du bei den entsprechenden Monaten die nicht möglichen Tage aus.Habe ich das Problem mit dem 29. Februar auch, wenn ich es folgendermaßen mache?
<SELECT name="date">
<?php
dayend = mktime(0,0,0,date("m"),date("d"), (date("Y")+1));for($i = $daystart; $i <= $dayend; i+=86400) { currentday = date("d.m.Y", i."'>".$currentday."</OPTION>";
}
?>
</SELECT>Das mit der Trennung hatte ich auch schon gedacht, aber java-script wollte ich vermeiden und anders ist es doof, da dann bei den Tagen immer 31 stehen und das den User durcheinander bringen könnte.
@flenders wie will er die daten denn bei einem select manipulieren? Ich sende die ja nicht per get...MfG
Tobsen
-
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!!