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.
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.
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.