我在mysql数据库中的日期设置为1999-11-30,无论我从php表单输入什么内容。
$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等未定义 有什么帮助吗?
答案 0 :(得分:9)
谷歌搜索“'1999-11-30'mysql php”在第一次点击时找到non-bug来解释为什么“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))
,并按照报告的PHP错误中的描述打印出1999-11-30
。
您可能想要调查您的变量($ dt,$ mo,$ yr)是否实际上具有从表单开始设置的正确值。
答案 1 :(得分:2)
看起来你正在使用
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));
答案 2 :(得分:0)
试试这个
$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));
参考此链接