Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeit und Datum aus Formular in Datenbank

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • tippain
    hat ein Thema erstellt Zeit und Datum aus Formular in Datenbank.

    Zeit und Datum aus Formular in Datenbank

    Hallo Leute,
    Ich brauche mal eure Hilfe. Ich möchte auf meiner Webseite neue Einträge über ein Formular einstellen. So weit so gut allerdings will ich auch zeit und Datum für jeden Beitrag hinzufügen wann diese online gehen bzw veröffentlicht werden. Hab ihr eine Idee wie ich das Datum und die zeit aus meinem Formular in die Datenbank als zeitstempel speichern kann? Bzw kennt ihr gute Javascript schnipsel zum eingeben und von Datum und Zeit,welches sofort in einen zeitstempel umgewandelt wird?
    Vielen Dank schon mal im voraus

  • hausl
    antwortet
    Zitat von tippain Beitrag anzeigen
    kennt ihr gute Javascript schnipsel zum eingeben und von Datum und Zeit
    https://www.google.at/#q=jquery+datepicker

    Meist ist das dann auch entsprechend konfigurierbar, kannst ja in der DB ohne weiteres auch statt einen Timestamp ein DateTime verwenden, oder "umwandlen" halt. https://www.google.at/#q=datepicker+format

    Und besser die alten date() time() strtotime() Funktionen sein lassen. Dafür gibt es die DateTime Klasse in PHP. http://php.net/manual/de/class.datetime.php

    LG

    Einen Kommentar schreiben:


  • Durin
    antwortet
    Input-type hin oder her, das musst du auch mit PHP validieren, zB $tag = min(30, max(1, intval($_POST["tag"])).
    strtotime sollte aber auch false zurückgeben wenn es das Datum fehlerhaft ist.

    //Zu langsam max-length im Browser funktioniert normalerweise, und bei manchen Browsern sind inzwischen auch die eingebauten type-Validierungen beim Absenden richtig nervtötend, um da was falsches zu senden musst du meistens *nachhelfen*

    Einen Kommentar schreiben:


  • Ma27
    antwortet
    Dann hast du deinen Timestamp
    Nein, es handelt sich bei deinem Ergebnis NICHT um einen TImestamp.

    Musst eben eventuelle Fehleingaben wie 32.01.2013 abfangen
    Dafür gibt es doch checkdate().

    <input> bietet sowas wie "max-length"
    Wird in Textbasierten Browsern sowas überhaupt berücksichtigt? EIne prüfung mit strlen() auf PHP-Seite wäre imo besser.

    LG

    Einen Kommentar schreiben:


  • Tera3yte
    antwortet
    Also HTML bietet bei <input> den Typ "datetime" an.

    Allerdings muss man das manuell, korrekt eintippen also in etwa "2014-12-24 07:00:00". Daher bietet sich soetwas eher an:

    PHP-Code:

    // Some Code

    <input type="text" name="tag">
    <
    input type="text" name="monat">
    <
    input type="text" name="jahr">

    // Some Code

    $timestamp strtotime($_POST["jahr"]."-".$_POST["monat"]."-".$_POST["tag"]) 
    Dann hast du deinen Timestamp. Musst eben eventuelle Fehleingaben wie 32.01.2013 abfangen. Weil es dann zu Fehlern kommt. Und die Uhrzeit solltest du dann so ähnlich auch hinzufügen können.

    <input> bietet sowas wie "max-length" oder in der Art an damit kannst du auch die Eingabe schon begrenzen, nicht das wer z.B. "2zi" als Tag einträgt. Dann musst du dich schonmal nicht um sowas kümmern. Auch kann über den Typ ein nur Nummerischer Wert verlangt werden. Schau dir einfach mal ein wenig die <input> Möglichkeiten an.

    EDIT:

    Hab eben mal nachgeschaut mit "min" und "max" lassen sich bei typ="number" auch minimal und maximal Werte festlegen. Heißt du musst lediglich abfangen das jemand etwas wie 30.02.2013 in die Felder einträgt. Aber das ist nicht so schwer.

    Einen Kommentar schreiben:


  • Ma27
    antwortet
    Haste schon einen Ansatz? Hier gibt es genug, die dir dann auch helfen werden, diesen zu verbessern.

    http://php.net/manual/de/datetime.format.php

    Die DateTime Klasse kann über getTimestamp() (http://php.net/manual/de/datetime.gettimestamp.php) dann einen Timestamp generieren und den musst du dann in die DB einspeichern

    LG

    Einen Kommentar schreiben:


  • tippain
    antwortet
    Danke erstmal für die antworten aber das ist nicht ganz das was ich suche ich möchte per input in einem Formular ein Datum und eine zeit eingeben und das dann in den zeitstempel umwandeln und anschließend speichern in der Datenbank. Han ihr dafür auch eine Idee?

    Einen Kommentar schreiben:


  • Tera3yte
    antwortet
    Stimmt.

    Einen Kommentar schreiben:


  • Ma27
    antwortet
    Bzw wenn du es in der DB speicherst einfach den aktuelle Datetime mit speichern?
    Datetime !== Timestamp

    http://www.scandio.de/2011/02/der-un...atetime-mysql/

    strtotime("now")
    Alternative time() funktion geht auch - http://php.net/manual/de/function.time.php

    LG

    Einen Kommentar schreiben:


  • Tera3yte
    antwortet
    PHP-Code:
    strtotime("now"
    Sowas in der Art eventuell?

    Bzw wenn du es in der DB speicherst einfach den aktuelle Datetime mit speichern?

    Einen Kommentar schreiben:

Lädt...
X