2017-09-20 1 views
0

Ich verwende jQuery UI Datepicker (http://trentrichardson.com/examples/timepicker/). Bis auf eine Sache funktioniert alles einwandfrei. Ich kann das gewünschte Datum und die Uhrzeit auswählen und speichern. Alles ist in der Datenbank korrekt gespeichert und wenn ich zum Editor zurückkomme, sehe ich das Datum/die Uhrzeit, die ich vorher gespeichert habe. Alles gut bis jetzt. Das Problem ist, wenn ich versuche, das Datum/die Uhrzeit zu bearbeiten. Sehen Sie, was passiert:jQuery UI Datepicker zeigt kein zuvor ausgewähltes Datum/Uhrzeit

enter image description here

Beachten Sie, wie auch wenn das Eingabefeld Textbox Datum/Uhrzeit „2017.11.01 08.23.00“ hat, der Kalender ist standardmäßig den aktuellen Tag zu zeigen, meine Computer, 20. September, und für die Zeit zeigt es den Standardwert von 12:00 Uhr. Warum berücksichtigt der Kalender nicht die Werte, die im Eingabefeld angezeigt werden?

EDIT: Das ist, was ich in meiner JavaScript-Datei bin mit:

// jQuery UI Datepicker (http://trentrichardson.com/examples/timepicker/) 
$('#start_date').datetimepicker({ 
    timeInput: true, 
    timeFormat: "hh:mm tt" 
}); 

Dies ist, was ich in meiner PHP/.ctp Datei (ich bin mit CakePHP 1.2):

<div> 
    <?php echo $form->input('start_date', array('id' => 'start_date', 'label' => __l('Start Date'), 'type' => 'text'));?> 
</div> 
+0

Ich vermute, das Problem könnte sein, dass in der Datenbank der Eintrag als "2017-11-01 08:23:00" angezeigt wird, und jQuery UI Datepicker erwartet dieses Format möglicherweise: "11/01/2017 08:23 bin ". –

Antwort

0

Die angenommene Antwort bei Is it possible to change date format in date time picker? gab mir den Hinweis, die Lösung für das zu finden, was ich brauchte. Das war die Lösung für mich:

$('#start_date').datetimepicker({ 
    timeInput: true, 
    dateFormat: 'yy-mm-dd', 
    timeFormat: 'HH:mm:ss' 
}); 

ich einfach das gleiche Format folgen musste, wie die Datenbank speichert das Datum und die Zeit, denn das ist, wie CakePHP die Daten abruft. Jetzt funktioniert alles richtig für mich.