Search code examples
phpmysqlisqldatatypestype-conversion

Converting dates with PHP for DATETIME in SQL


I have a forum in PHP which takes a date like in the form dd/mm/yyyy hh:mm:ss. However, I need to insert it for SQL as a DATETIME in the format as yyyy-mm-dd hh:mm:ss. How can I convert this data?


Solution

  • Your date time format is wrong: dd/mm/yyyy hh:mm:ss. Probably you mean d/m/Y H:i:s

    If you have 5.3+ version there is safe way to convert the date time into another format. Here's an example:

    $timestamp = '31/05/2001 12:22:56';
    $timestamp = DateTime::createFromFormat('d/m/Y H:i:s', $timestamp);
    echo $timestamp->format('Y-m-d H:i:s');
    

    or if you like more procedural way:

    $timestamp = '31/05/2001 12:22:56';
    $timestamp = date_create_from_format('d/m/Y H:i:s', $timestamp);
    echo date_format($timestamp, 'Y-m-d H:i:s');
    

    Be careful with previous suggestions. Some are completely wrong and others could lead to errors.