无论我从php表单中输入什么,我在mysql数据库中的日期都设置为1999-11-30。
$degree_date = date("Y-m-d", mktime(0,0,0,$dt,$mo,$yr));
$other_degree_date = date("Y-m-d", mktime(0,0,0,$dty,$moy,$yry));
$expd_degree_date = date("Y-m-d", mktime(0,0,0,$dti,$moi,$yri));
示例:
1. Date of Award
<select input name="dt" type="text" id="dt">
<select input name="mo" type="text" id="mo">
<select input name="yr" type="text" id="yr">
2. Date of Award
<select input name="dty" type="text" id="dty">
<select input name="moy" type="text" id="moy">
<select input name="yry" type="text" id="yry">
3. Date of Award
<select input name="dti" type="text" id="dti">
<select input name="moi" type="text" id="moi">
<select input name="yri" type="text" id="yri">
插入声明:
$sql_insert = "INSERT into `acadmic`
`degree_date`,`other_degree_date`, `expd_degree_date`
)
VALUES
'$degree_date', '$other_degree_date','$expd_degree_date',
我收到未定义$dt$mo$yr等的消息有什么帮助吗?
在谷歌上搜索"1999-11-30'mysql php"时,第一次点击就出现了一个非错误,解释了为什么"1999-11-30"可能是你的结果:
There is no bug here, 00-00-00 means 2000-00-00, which is 1999-12-00, which is 1999-11-30. No bug, perfectly normal.
我测试了echo date("Y-m-d", mktime(0,0,0,0,0,0))
,它确实打印出了1999-11-30
,正如报告的PHP错误中所描述的那样。
您可能需要调查变量($dt、$mo、$yr)是否真的从表单开始就设置了正确的值。
看起来您正在使用
mktime($hour, $minute, $second, $month, $day, $year, $is_dst)
函数的参数错误。。。您正在用$day
代替$month
。
$degree_date = date("Y-m-d", mktime(0,0,0,$dt,$mo,$yr));
应该是
$degree_date = date("Y-m-d", mktime(0,0,0,$mo,$dt,$yr));
检查http://php.net/mktime
试试这个
$degree_date = date("Y-m-d", mktime(0,0,0,$mo,$dt,$yr));
$other_degree_date = date("Y-m-d", mktime(0,0,0,$moy,$dty,$yry));
$expd_degree_date = date("Y-m-d", mktime(0,0,0,$moi,$dti,$yri));
请参阅此链接