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

  • 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


  • #2
    PHP-Code:
    strtotime("now"
    Sowas in der Art eventuell?

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

    Kommentar


    • #3
      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
      https://github.com/Ma27
      Javascript Logic is funny:
      [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

      Kommentar


      • #4
        Stimmt.
        - Laravel

        Kommentar


        • #5
          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?

          Kommentar


          • #6
            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
            https://github.com/Ma27
            Javascript Logic is funny:
            [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

            Kommentar


            • #7
              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.
              - Laravel

              Kommentar


              • #8
                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
                https://github.com/Ma27
                Javascript Logic is funny:
                [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

                Kommentar


                • #9
                  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*

                  Kommentar


                  • #10
                    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
                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar

                    Lädt...
                    X