日期设置为默认';1999-11-30';


Dates setting to default '1999-11-30'

无论我从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));

请参阅此链接