php中如何将string类型转换为date类型插入到数据库中的date类型字段中,incorrect date value啥意思?

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:15:01
RT,谢谢
mysql,在表单的文本框输日期,插入到数据库时显示incorrect date value

mysql 的时期格式可以直接插入字符串,
不过要符合这种格式 2000-01-01 00:00:00
把你的字符串弄成这种样子可以直接存进去了
INSERT INTO `table_name` (`date`) VALUES ('2000-01-01 00:00:00');

"incorrect date value": 不正确的日期值.

有时间字符串输入格式是
2000-1-1
可以按以下方式处理
$strDate = '2000-1-1';
$arr = explode('-',$strDate);
// 按 "-" 分隔成数组,也可以是其它的分隔符
$time = mktime(0,0,0,$arr[1],$arr[2],$arr[0]);
// 根据数组中的三个数据生成UNIX时间戳mktime(时,分,秒,月,日,年)
$fmtDate = date('Y-m-d H:i:s', $time);
// 按Y-m-d H:i:s(年-月-日 时:分:秒)格式化

经过以上4行代码;
可以把字符串 $strDate (2000-1-1)
转换成 $fmtDate (2000-01-01 00:00:00)这种格式.
够详细了吧?

不知道你用的什么类型的数据库,我用过的真正意义上的数据库,都有自动类型转换的功能,就是说都支持下面这样的SQL语句:
INSERT INTO table (dateFile) VALUES ('2009-3-19')

INFORMIX支持、MYSQL也支持,不过好像FOXPRO和ACCESS不支持,我对微软的东西不熟悉。

如果你是使用的MYSQL数据库,完全可以使用上面的类似语句,利用数据库的自动类型转换实现。注意日期数据有引号,例如:
$regdate='2009-3-19';
$sq