2 votes

INSERT d'horodatage MySQL correct mais parfois défaillant

J'ai donc un bootstrap 3 et il y a un clockpicker et un datepicker plugins dans celui-ci. Je récupère toutes les données via PHP et j'essaie de les insérer dans MySQL (actuellement en XAMPP). Parfois l'INSERT est correct, mais parfois l'un des deux ou les deux Timestamp Les champs de la base de données sont laissés à 0000....

Puisque j'affiche la date comme 17/09/2016 mais j'essaie de l'enregistrer comme 2016-17-09 dans MySQL et que je dois concaténer le texte du sélecteur d'horloge au texte du sélecteur de date, c'est ce que je fais :

    $startDate = $_POST['shiftStartDate'] . " " . $_POST['shiftStartTime'];
$startDateFormat = str_replace('/', '-', $startDate);
$date1 = date_create($startDateFormat);
$dateTime1 = date_format($date1, 'Y-d-m H:i:s');

$endDate = $_POST['shiftEndDate'] . " " . $_POST['shiftEndTime'];
$endDateFormat = str_replace('/', '-', $endDate);
$date2 = date_create($endDateFormat);
$dateTime2 = date_format($date2, 'Y-d-m H:i:s');

Des idées ?

SOLUTION : Lors de la mise en forme, respectez l'exigence de MySQL, à savoir Y-m-d, et NON Y-d-m :

$dateTime2 = date_format($date2, 'Y-m-d H:i:s');

3voto

RiggsFolly Points 8988

MYSQL s'attend à ce que le format de la date soit AAAA-MM-JJ HH:MM:SS lorsque vous l'enregistrez dans la base de données dans une colonne de type DATETIME ou TIMESTAMP.

Vous essayez de l'enregistrer sous le format AAAA-JJ-MM. Cela ne fonctionne que si le JJ est inférieur à 12, ce qui explique probablement pourquoi cela fonctionne parfois et parfois non.

Formatez donc vos dates correctement en fonction des attentes de MYSQL et tout ira bien.

Je m'attends également à ce que vous obteniez des résultats étranges lorsque vous relisez les dates qui ont été enregistrées dans la base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X