我似乎无法找到关于此的任何信息..
我需要将字符串转换为日期,以便将其正确导入SQL DATE字段。当我将12/25/2012
导入数据库时,它显示为0000-00-00
。
这样做的正确方法是什么?
链接和参考赞赏。
答案 0 :(得分:4)
MySQL接受此格式的日期YYYY-MM-DD
,或者将日期格式12/25/2012
更改为2012-12-25
,或者修改它们以匹配正确的格式。
修改强> 如果您想继续使用自己的格式,请尝试使用
list($d,$m,$y) = explode("/", "12/25/2012"); //replace 12/25/2012 with your date
$hyphenDate = $y . '-' . $m . '-' . $d;
echo $hyphenDate;
答案 1 :(得分:2)
正如@Ravi在他的回答中指出的那样,MySQL接受YYYY-MM-DD
格式的日期。引自11.1.5. Date and Time Types 1 :
虽然MySQL试图解释几种格式的值,但是日期 零件必须始终以年 - 月 - 日的顺序给出
为此,您可以使用str_todate()
2 函数对其进行格式化:
str_to_date('12/25/2012', '%m/%d/%Y);
这样,这些输入字符串将作为日期对象存储在数据库中(没有任何特定的日期格式)。稍后,如果要以特定格式输出这些日期,可以使用DATE_FORMAT
3 对其进行格式化。类似的东西:
SELECT DATE_FORMAT(datefield, '%Y-%m-%d') FROM Test;
--2012-12-25
1,2,3: 您要求的链接和引用。
答案 2 :(得分:0)
使用类DateTime。例子:
$SomeDate = new DateTime();
echo $SomeDate->format( 'Y-m-d H:i:s' ); //Must be MySQL compatible (YYYY-MM-DD)
$ThisDate = new DateTime( date( 'Y-m-d H:i:s' ) );
echo $ThisDate->format( 'Y-m-d H:i:s' ); //Must be MySQL compatible (YYYY-MM-DD)