我想在我的数据库中插入一个日期,我从php输入中获取。 我用来插入值的代码如下所示
$length = strrpos($fristdatum, " ");
$newDate = explode(".", substr($fristdatum, $length));
$fristdatum = $newDate[2] . "-" . $newDate[1] . "-" . $newDate[0];
让我说我14.12.2012
作为日期输入echo $fristdatum
我得到2012-12-14
但是只要我将其插入我的MySQL数据库就会转向2014.12.20
任何想法?
列类型是日期。插件有点像这样
mysql_query("INSERT INTO sch_anschreiben (date)values('$fristdatum'))
还有更多值,但我想这无关紧要
提前致谢!
非常感谢帮助伙伴们,我想出了$fristdatum
,我在str_replace
的数组中使用了$patern = array("[Date]")
$words=array($fristdatum)
$content = str_replace($patern, $words, $content);
,在我编写之后,就像这样
str_replace
然后将其插入数据库中我现在改变了它,因此它会在{{1}}之后格式化,它似乎工作得很好。 如果有人能解释我为什么^^。
,也会很感激答案 0 :(得分:1)
如果您使用PHP 5.3或更高版本,请使用DateTime::createFromFormat
,而不是爆炸和硬编码转换。
$date = DateTime::createFromFormat('d. m. Y',$fristdatum);
echo $date->format('Y-m-d');//echoes 2012-12-14
现在您更正了脚本以正确方式注册日期,您应确保数据库正常。 您可以使用此请求:
UPDATE yourtable SET yourdate=CONCAT(MONTH(yourdate),'-',DAY(yourdate),'-',YEAR(yourdate)) WHERE MONTH(yourdate) > 12
答案 1 :(得分:0)
DATE类型用于具有日期部分但没有时间部分的值。 MySQL以'YYYY-MM-DD'格式检索并显示DATE值。支持的范围是'1000-01-01'到'9999-12-31'。
DATETIME类型用于包含日期和时间部分的值。 MySQL以'YYYY-MM-DD HH:MM:SS'格式检索并显示DATETIME值。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
TIMESTAMP数据类型用于包含日期和时间部分的值。 TIMESTAMP的范围为'1970-01-01 00:00:01'UTC到'2038-01-19 03:14:07'UTC。
因此,如果您想将其存储为14-12-2012
,请将其数据类型用作varchar
。
答案 2 :(得分:0)
将其转换为Y-M-D格式。您应该直接将2012-12-14放到您的数据库中。