我有两个文本字段,一个用于08/01/2012格式的日期,另一个字段包含时间。我目前的时间字段格式为09:41 am,但我对其格式有一定的灵活性(例如24小时更容易)。
我打算只是连接字符串然后转换。我应该先将日期转换为2012-08-01吗?
如何最终转换为日期时间(2012-08-01 09:41:00)?如何将其转换为08/01/2012和09:41 am格式?
答案 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);
我没有对此进行过测试,但它应该有效。