2012-11-12 17 views
0

我正在使用表單來獲取使用post方法的小時和分鐘,然後將其存儲到mysql數據庫。如何使用mktime()函數在數據庫表中存儲小時和分鐘?

如:

$hour = $_POST['hour']; 
$minute = $_POST['minute']; 

**沒有必要日期,月份和年份。我只需要到小時和分鐘存放在一個表中的列(如:exam_time)

柱結構:exam_time時間NOT NULL

現在如何使用mktime來存儲這些值到數據庫()函數。我試過但它存儲00:00:00,而不是我通過表單發送的那個。

+0

還請包括你如何使用mktime()和你的SQL查詢。 – hermann

+0

你是怎麼使用'mktime'的?你究竟想要在數據庫中存儲什麼? – deceze

+2

可能是'$ exam_time = $ hour。':'。$ minute。':'。'00';' – GBD

回答

2

我覺得你很容易混淆mktime - http://php.net/manual/en/function.mktime.php的目的。

mktime返回一個表示unix時間戳的整數值。

如果您需要存儲時間值,請使用dategetdate函數將輸入格式化爲所需的值。

+0

「mktime返回表示unix時間戳的整數值」 ---現在我明白了,我的問題解決了。 我將我的MySQL列設置爲int(11),然後它以時間戳格式存儲實際值。順便說一句我的問題已解決,感謝您的幫助。 –

+0

無論哪個答案對您有幫助 - 您都應該將其標記爲已接受的答案。 – Kami

1

我在猜測腳本是正確的,但是您已將您的MySQL列設置爲DATE而不是DATETIME

+0

我將我的MySQL列設置爲int(11),然後以時間戳格式存儲實際值。順便說一句我的問題已解決,感謝您的幫助。 –

2

mktime(),date()getdate()全部處理UNIX時間戳。

在你的情況下,你有兩個單獨的小時和時間字段。 mySQL中的TIME列不處理UNIX時間戳,因此您不應該使用上述函數。

範圍是'-838:59:59'到'838:59:59'。 MySQL以'HH:MM:SS'格式顯示TIME值,但允許您使用字符串或數字將值分配到TIME列

因此,根據這一點,您可以嘗試插入一個像這樣的新時間值:

"INSERT INTO mytable (exam_time) VALUES ('" . $hour . ":" . $minute . "')" 
0

使用TIME_ZONE_SET(您的區域),然後插入(小時,minits)到exam_time VALUES( 「 」 '.date( 「I」)。'「 」.date(「 H)。'」 )使用您的MYSQL數據庫中選擇的DATETIME。

+0

謝謝大家。我的問題解決了。 –

相關問題