PHP date() format when inserting into datetime in MySQL


Question

What is the correct format to pass to the date() function in PHP if I want to insert the result into a MySQL datetime type column?

I've been trying date("Y-M-D G:i:s") but that just inserts "0000-00-00 00:00:00" everytime.

1
288
5/3/2016 1:00:41 PM

Accepted Answer

The problem is that you're using 'M' and 'D', which are a textual representations, MySQL is expecting a numeric representation of the format 2010-02-06 19:30:13

Try: date("Y-m-d H:i:s") which uses the numeric equivalents.

edit: switched G to H, though it may not have impact, you probably want to use 24-hour format with leading 0s.

629
2/7/2010 12:29:56 AM

From the comments of php's date() manual page:

<?php $mysqltime = date ("Y-m-d H:i:s", $phptime); ?>

You had the 'Y' correct - that's a full year, but 'M' is a three character month, while 'm' is a two digit month. Same issue with 'D' instead of 'd'. 'G' is a 1 or 2 digit hour, where 'H' always has a leading 0 when needed.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon