从字符串转换为php中的日期

时间:2013-03-05 16:05:05

标签: php sql string date

我环顾四周但仍然收到错误。

我有以下字符串:

$date = "25 Jan 2013 07:30 PM";

但我需要将它作为单独的日期和时间字段添加到sql中。有什么建议我如何将它转换为日期而不是字符串?当我尝试使用像

这样的东西时
strtotime($date);

我最终得到了:

1359142200

4 个答案:

答案 0 :(得分:4)

选项1:

$date = date("Y-m-d", strtotime("25 Jan 2013 07:30 PM"));
$time = date("H:i:s", strtotime("25 Jan 2013 07:30 PM"));

选项2

$datetime = DateTime::createFromFormat("j M Y H:i A", "25 Jan 2013 07:30 PM");
$date = $datetime->format("Y-m-d");
$time = $datetime->format("H:i:s");

答案 1 :(得分:1)

要获得最佳效果,请使用DateTime::createFromFormat$date转换为DateTime个对象,然后使用DateTime::format获取单独字段的值。

示例:

$dt = DateTime::createFromFormat("d M Y H:i A", "25 Jan 2013 07:30 PM");

$date = $dt->format("Y-m-d");
$time = $dt->format("H:i:s");

答案 2 :(得分:-1)

所以你只想让它们分开?类似的东西:

$year_month_day = date('Y/m/d', strtotime($date));
$timestamp = date('H:i:s', strtotime($date));

更多信息:http://www.php.net/manual/en/function.date.php

答案 3 :(得分:-1)

如果您想将它作为时间戳,那么strtotime()是要使用的PHP函数: - http://php.net/manual/en/function.strtotime.php

如果你想要它在MySQL日期格式字符串中,那么strtotime()date()的组合将是这样的答案: -

$db_date = date("Y-m-d H:i:s", strtotime($date) );