PHP将字符串日期和时间转换为MySQL DateTime

时间:2012-08-01 16:48:05

标签: php mysql datetime

我有两个文本字段,一个用于08/01/2012格式的日期,另一个字段包含时间。我目前的时间字段格式为09:41 am,但我对其格式有一定的灵活性(例如24小时更容易)。

我打算只是连接字符串然后转换。我应该先将日期转换为2012-08-01吗?

如何最终转换为日期时间(2012-08-01 09:41:00)?如何将其转换为08/01/2012和09:41 am格式?

2 个答案:

答案 0 :(得分:6)

SELECT STR_TO_DATE(concat('08/01/2012', '09:41am'),'%d/%m/%Y%h:%i');

答案 1 :(得分:2)

在数据库方面,您可以使用:

STR_TO_DATE()使用this table中的说明符转换为数据库友好格式。 Reference

然后

DATE_FORMAT()将返回您想要的数据库时间部分。 Reference

在PHP方面,您可以使用:

  • strtotime() - 将任何英文文本日期时间描述解析为Unix时间戳
  • date - 格式化当地时间/日期

strotime将根据传递给它的任何字符串日期/时间生成Unix时间戳。如果你通过了两个字段(08/01/2012和09:41 am),它将根据它生成一个时间戳。要撤消此过程,请使用date("m/d/Y H:ia")

$field1 = '08/01/2012';
$field2 = '09:41am';

$stamp = strtotime($field1 . ' ' . $field2);

echo date("m/d/Y H:ia", $stamp);

我没有对此进行过测试,但它应该有效。