Konvertieren Sie das jQuery Datepicker-Format in das SQL-Datumsformat

Ich legte das jQuery Datepicker-Format auf D dm als Th 3.3 angezeigt . für ein benutzerdefiniertes Meta-Feld, das ich zum Sortieren von Beiträgen verwenden möchte. In SQL wird das benutzerdefinierte Metafeld als D dm gespeichert

Ich möchte das D dm- Format am Frontend anzeigen und es als mm-dd-yy oder 03-03-2011 in meiner SQL-database speichern.

Irgendwelche Ideen?

Mein Eingabefeld für das benutzerdefinierte Metafeld cp_date:

<input name="field_name; ?>" id="field_name; ?>" type="text" minlength="2" value="field_name])) echo $_POST[$result->field_name]; ?>" autocomplete="off" class="datepicker field_req) echo 'required' ?>" /> 

Solutions Collecting From Web of "Konvertieren Sie das jQuery Datepicker-Format in das SQL-Datumsformat"

Erstens müssen Sie die Daten im D dm Format nicht mehr speichern, da die Abfragen nicht in der Lage sind, diese Daten zu sortieren.

Wie Wyrfel gezeigt hat, müssen Sie die Option alternatives Feld verwenden, um zwei Felder zu haben, eines, das das schöne (oder Ihr gewähltes) Datumsformat anzeigt, und ein anderes, das den Wert enthält, den Sie in der database speichern (in einem Format, das Abfragen können korrekt sortiert werden, z. B. yy-mm-dd ).

Beziehe das auf der einen Codezeile, die du gepostet hast.

PHP / HTML: (um den von Ihnen geposteten Code zu ersetzen)

 < ?php $date_valid = false; if( isset( $_POST[$result->field_name] ) ) { $date_parts = explode( '-', $_POST[$result->field_name] ); $date_valid = ( 3 == count( $date_parts ) ) // Validate date - checkdate returns true/false ? checkdate( $date_parts[1], $date_parts[2], $date_parts[0] ) : false; } $display_date = ( $date_valid ) ? date( 'D d.m', strtotime( implode( '-', $date_parts ) ) ) : ''; $storage_date = ( $date_valid ) ? $_POST[$result->field_name] : ''; $req = $result->field_req ? ' required' : ''; ?>   

Datepicker jQuery: (zieh einfach was du brauchst)

 jQuery(function($) { $( ".datepicker" ).datepicker({ dateFormat: 'D d.m', altField: ".date_alternate", altFormat: "yy-mm-dd" }); }); 

Auf diese Weise werden alle Ihre Daten im Format yy-mm-dd gespeichert, aber der Benutzer sieht das Datum in D dm .

Ich habe diesen Ansatz lokal getestet und konnte die benötigte functionalität erhalten. Hier sind ein paar Screenshots meiner Themenoptionen unter Verwendung eines Datumsfeldes und des von Ihnen gewählten Datumsformats (mein Code war offensichtlich ein wenig anders als der obige Code, aber der Ansatz war der gleich).

Auswahl eines Datums:
Bildbeschreibung hier eingeben Die aktuellen Werte befinden sich unten im Abschnitt “Live-Abruf”.

Was Sie sehen, nachdem Sie auf ein Datum im Kalender geklickt haben:
Bildbeschreibung hier eingeben

Visuelle und gespeicherte Werte:
Bildbeschreibung hier eingeben

Ich dachte, es wäre einfach schön, den Code in der Praxis zu sehen und hoffe, dass das hilft .. 🙂

Bitte sehen Sie sich das alternative Feld und den Quellcode auf dieser Seite an . Machen Sie Ihr Alternativfeld zu einem versteckten Feld und speichern Sie dann den Wert des alternativen Felds anstelle des sichtbaren Felds in Ihren Metadaten.

Ahh … natürlich sollte dein Datumsformat für das alternative Feld ‘JJ-MM-TT’ sein.