2012-03-29 155 views
2

我的日期在mysql數據庫中設置爲1999-11-30,無論我從我的php表單輸入什麼。日期設置爲默認'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"> 

Insert語句:

是$ DT $ $莫等年中沒有定義 任何幫助
$sql_insert = "INSERT into `acadmic` 
`degree_date`,`other_degree_date`, `expd_degree_date` 
) 
VALUES 
'$degree_date', '$other_degree_date','$expd_degree_date', 

我得到的消息?

+1

你如何在MySQL中存儲/檢索這些數據? (我們需要看到相關的INSERT/SELECTs等) – 2012-03-29 09:19:22

+0

你是如何從請求中獲取數據的,你能證明這一點: – 2012-03-29 09:22:26

回答

8

谷歌搜索「 '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)),並且不會打印出1999-11-30作爲報道的PHP錯誤描述。

您可能想要調查您的變量($ dt,$ mo,$ yr)實際上是否具有從表單開始的正確值。

+0

我得到的消息是$ dt,$ mo,$ yr,其餘都沒有定義。最好的辦法是什麼? – user1257518 2012-03-29 09:39:36

+0

由於這些是實例變量,除非它們被明確地設置在腳本的其他地方(直接或通過import/require語句),比如'$ dt = 9',就PHP而言它們默認是不確定的。除非使用某種框架,否則通常使用$ _POST或$ _GET全局變量(即'$ dt = $ _POST ['dt']')來獲取表單參數。這將有助於顯示實際的HTML表單就像在表單提交到的地方一樣,關於你的PHP腳本。 – 2012-03-29 09:56:08

+0

現在我已經定義了它們的全部功能!謝謝 – user1257518 2012-03-29 10:08:16

2

看起來像你使用了錯誤的參數......你傳遞的$month的地方$day

mktime($hour, $minute, $second, $month, $day, $year, $is_dst) 

功能。

$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

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

請參考以下鏈接

+0

只是做同樣的事情 – user1257518 2012-03-29 09:36:58

+0

請參閱這個鏈接:http://www.phpf1。 com/tutorial/php-date-time-basics.html – vicky 2012-03-29 09:44:00