如何從2012年12月25日上午5:12:05存儲日期開始計算時間。如何使用php日期函數從oracle日期字段中選擇日期和時間
date('l F j, Y, g:i a',strtotime($last_login_details[FL_DATETIME]));
這上面的函數返回的時間爲上午12:00,應返回上午05點12。
FL_DATETIME具有數據類型DATE。
在數據庫中,該值被存儲這樣的:
所有的12/25/2012 5:12:05 AM
如何從2012年12月25日上午5:12:05存儲日期開始計算時間。如何使用php日期函數從oracle日期字段中選擇日期和時間
date('l F j, Y, g:i a',strtotime($last_login_details[FL_DATETIME]));
這上面的函數返回的時間爲上午12:00,應返回上午05點12。
FL_DATETIME具有數據類型DATE。
在數據庫中,該值被存儲這樣的:
所有的12/25/2012 5:12:05 AM
按照文檔 - http://docs.oracle.com/cd/B19306_01/server.102/b14220/datatype.htm#i1847 -
輸入和日期的輸出,標準的Oracle日期格式爲DD-MON-YY
這很可能是爲什麼$last_login_details[FL_DATETIME]
正在呼應25-DEC-12
試着改變你的查詢中使用TO_CHAR()
SELECT TO_CHAR(FL_DATETIME, 'MM/DD/YYYY HH24:MI:SS A.M.') AS FL_DATETIME ...
看到使用PHP 5.3.19 http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html#date格式
首先,在我看來,你應該儲存所有的日期爲Unix的時間戳。這使您可以更輕鬆地按時間進行搜索,並消除日期字符串操作中可能出現的任何不一致情況。
二,我測試了你的代碼;從我所知道的情況來看,這似乎是確定的。回覆您在$ last_login_details [FL_DATETIME]變量中獲得的內容。問題可能在於變量賦值,而不是日期字符串操作。
希望有幫助!
要解決我的問題:
SELECT TO_CHAR(FL_DATETIME, 'DD.MM.YYYY:HH24:MI:SS') FROM "FMS_LOG"
它返回'星期二2012年12月25日,5:12 am'我。 – PhearOfRayne
我不認爲PHP版本很重要。只是注意到它只返回25-DEC-12當我回顯$ last_login_details [FL_DATETIME] – hsuk
**小心!** PHP應該拋出警告和通知,由於語法無效,它會自動更正。你可能沒有把你的'error_reporting'級別變得足夠高。考慮一直到-1。 – Charles