从PHP推送奇怪格式的日期到MySQL

时间:2010-11-12 21:27:10

标签: php sql mysql date-manipulation

我确信这一定是一个常见的问题,但我无法在任何地方找到它,所以在这里:

我有这种格式的日期:09/Jul/2003:00:03:48 -0300我希望将它们推入MySQL中的DATETIME字段。

最简单的方法是什么?按下它们会导致它们归零。

3 个答案:

答案 0 :(得分:5)

MySQL在DATETIME中不包含时区,但您可以使用:

STR_TO_DATE('09/Jul/2003:00:03:48', '%d/%b/%Y:%H:%i:%s')

...将日期/时间的字符串表示转换为DATETIME以存储在数据库中。

参考:

答案 1 :(得分:0)

据我所知,无法更改,必须采用以下格式:

'YYYY-MM-DD HH:MM:SS'

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

答案 2 :(得分:0)

我最喜欢的PHP函数是strtotime()。如果那不能解释输入,那么我可能无法对可能的内容进行编码。

所以我会这样做:

mysql_real_escape_string(date('Y-m-d H:i:s', strtotime($stragely_formatted_date)));

准备一个DATE字符串以提供给MySQL。

一如既往,请考虑设计中的时区。

mysql_real_escape_string()可能是不必要的,但我使用它时总觉得更安全。