如何从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