在php中为sql插入格式化日期和时间

时间:2013-07-24 13:54:07

标签: php zend-framework zend-date

我有一个日期和时间,我从csv文件解析,$ date是一个字符串,它保存值'18 -06-2013',$ time字符串var保存值'06 .00 ”。我需要它由PHP格式化,以便我可以将其插入到我的mysql数据库中,格式为2013/06/18和06:00:00。我该怎么做?现在,它插入一些零垃圾值,如日期和 00:00:06时间。

4 个答案:

答案 0 :(得分:1)

您可以将其拆分为“ - ”标记,然后以相反的顺序将其加回(假设您的输入格式为DD-MM-YYYY,它似乎是)

$date = implode('-', array_reverse(explode('-', $date, 3));
$time = str_replace('.', ':', $time) . ':00';
$datetime = "$date $time";

答案 1 :(得分:0)

您可以将自定义时间格式传递给strtotime,然后使用date格式化时间

$time = strtotime("$date $time");
echo date("Y-m-d h:i:s", $time);

答案 2 :(得分:0)

Mysql需要格式为yyyy-mm-dd hh:mm:ss的DateTime字段才能正确存储。

这是一个供你玩的测试脚本。

<?php
    $date = '2013/06/09';
    $time = '06.00';

    list($y, $m, $d) = explode('/', $date);
    list($hr, $mn)   = explode( '.', $time);

    $db_datetime = sprintf( '%d-%02d-%02d %02d:%02d:%02d', $y, $m, $d, $hr, $mn, 0 );

    echo $db_datetime;
?>

答案 3 :(得分:0)

您可以使用DateTime类。自PHP 5.2.0以来,它在PHP中是原生的。

示例:

$myDate = '2013/06/18 06:00:00';
$myDateTime = new DateTime($myDate);

echo $myDateTime->format('Y-m-d H:i:s');