2012-02-22 60 views
10

我有一個問題...我的MySQL數據庫中有一個表存儲JQuery類型日曆內的待辦事項列表條目。
我不得不產生calendar_id一次我創建時間戳(視爲一次我點擊任何壓延dateboxes的,在一些待辦事項任務鍵 - 把它簡單:創建日期時間),將產生一個提醒。日期時間到整數

此待辦事項列表活動的應用程序,是我一直在努力用我自己的管理系統進行集成的外部應用程序。我注意到,時間戳列的格式爲int(11),所以輸入的任何時間戳都將被轉換爲整數。

例如,看看這個:

2012-02-22 15:31:24 

轉換爲

1329899400 

我們如何可以轉換的日期時間,以這種格式?當我嘗試時,不是在幾秒鐘內:

intval(floor($datetime/86400)); 

任何幫助?

+0

我不相信DateTime不能用Integer表示。 DateTime是自1970年特定日期以來的秒數(取決於幾種優惠)。您將不得不找出該值所代表的含義,因爲它看起來確實不像您真正知道的那樣。 – 2012-02-22 17:06:28

+0

是的,我搞清楚了什麼值代表,因爲對於任何插入的時間戳,數字序列是有點「奇怪」。至少對我來說,這是我第一次體驗這一點,因爲我還在學習PHP/MySQL: ) – foxns7 2012-02-22 17:13:44

+0

@Selang:數字是[UNIX時間戳](http://en.wikipedia.org/wiki/Unix_timestamp)。它們被廣泛使用(特別是在UNIX系統上)。 – Chris 2012-02-22 17:15:44

回答

14

FROM UNIXTIME可以格式化UNIX時間戳到日期時間字段:

SELECT FROM_UNIXTIME(time) 
FROM ... 

反向功能將是UNIX_TIMESTAMP


或者你可以做到這一點在PHP中,如果有的話:
存儲日期到數據庫格式,它是這樣的:

$datetimeStr = '2012-02-22 15:31:24'; 
$datetime = strtotime($datetimeStr); 

要從數據庫檢索並格式化到原始格式,使用這樣的事情:

$dateTimeFromDB = '1329921084'; 
$datetimeStr = date('Y-m-d H:i:s', $dateTimeFromDB); 
+0

Geez,我完全是一個愚蠢的不學習這個Unixtime函數......感謝回覆 – foxns7 2012-02-22 17:06:08

+0

它的工作!謝謝... – foxns7 2012-02-22 17:44:12

+1

約會比01.01.1970小? – 2015-12-29 16:06:46

6

這裏是一個不錯的MySQL的UNIX_TIMESTAMP()功能爲您

+0

是「INSERT INTO db.table('timestamp')VALUES(UNIX_TIMESTAMP($ datetime))」;在我的情況下是正確的命令? – foxns7 2012-02-22 17:10:53

+0

如果你的'$ datetime'是'YYYY-MM-DD HH:MM:SS'格式(注意你可以使用不同的分隔符而不是'-'和':',那麼是的)。另外,看到你使用PHP ,你可以使用它的strtotime()函數 – Mchl 2012-02-22 17:15:49

+0

我忘了告訴你,我確實執行了$ datetime = strtotime($ datetime);但是數據庫中的值只能讀取2012年,即'Year'部分。 。這是怎麼發生的? – foxns7 2012-02-22 17:19:03