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

时间:2012-03-29 09:17:04

标签: php mysql

我在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等未定义 有什么帮助吗?

3 个答案:

答案 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));

检查http://php.net/mktime

答案 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));

参考此链接