[問題] 存在資料庫欄位中的日期如何轉換成看得懂的格式?

phpBB Installation & Usage Support
phpBB 3 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 3.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
anns
星球普通子民
星球普通子民
文章: 2
註冊時間: 2008-03-25 08:34

[問題] 存在資料庫欄位中的日期如何轉換成看得懂的格式?

文章 anns »

Hi, 各位先進,不好意思想請問一下,我架設了一個測試用論壇,想做一個功能就是[每週新進文章列表],
在每週五篩選出本週新貼/更新的文章,並依照其所在的版面/子版面分類後,列示出來。
因為標準的好像沒有提供這功能,所以我打算用SQL把資料擷取出來依照日期排序過濾,但我看到table
bb_topics 中,關於日期欄位的值(例如欄位topic_last_post_time,topic_time),不知道他的格式是怎樣的方式,
是否有公式可以將其轉成yyyy/mm/dd hh:mi:ss 這種易於閱讀的格式?
我將SQL抓該欄位值的結果列於下方(舉例三筆),還請各位先進不吝惠予指點,謝謝您。

執行SQL statement:
select topic_last_post_time
from phpbb3.bb_topics
order by topic_last_post_time desc;

輸出:
TOPIC_LAST_POST_TIME
----------------------
1240377461
1240297383
1240295755
...
...

對照論壇發文時間,其中
1240377461 = 2009年 4月 22日, 13:17
1240297383 = 2009年 4月 21日, 15:03
1240295755 = 2009年 4月 21日, 14:35

謝謝您!

---------------------------------------------------------------------
●主機作業系統:Linux (OEL 5)
●快速架站程式:無
●免費空間連結:無(內部測試論壇)
●您的上網方式:內網
●您安裝的程式:Apache 2.2.9 + php 5.2.6 + Oracle 11gR1
●您的 phpBB 版本:phpBB 3.0.4
●您的 domain (網域名稱) : 無(內部測試論壇)
●您的 phpBB 連結網址: 無(內部測試論壇)
---------------------------------------------------------------------
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: [問題] 存在資料庫欄位中的日期如何轉換成看得懂的格式?

文章 心靈捕手 »

anns 寫:是否有公式可以將其轉成yyyy/mm/dd hh:mi:ss 這種易於閱讀的格式?
可以試試用 "date()" 轉換.

參考資料:
http://tw2.php.net/manual/en/function.date.php
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
anns
星球普通子民
星球普通子民
文章: 2
註冊時間: 2008-03-25 08:34

Re: [問題] 存在資料庫欄位中的日期如何轉換成看得懂的格式?

文章 anns »

Hi, 謝謝心靈捕手大師的提醒,讓我了解到這應該是源自於php的datetime資料型態。
於是,我去查了Oracle原廠文件,找到了如何用SQL把這日期算出來的方法。
我參考的文章是:

Working with Dates and Times in Oracle and PHP
http://www.oracle.com/technology/pub/ar ... dates.html

這篇文章後半段有建立二個FUNCTION:
unixts_to_date (To convert a UNIX timestamp into an Oracle DATE type)
date_to_unixts (To convert an Oracle DATE type into a UNIX timestamp)

使用本篇發問時的測試SQL,加上轉換,其中 ((1/24 * 8)是加上8小時成台灣時區時間):
select topic_last_post_time,
to_char((unixts_to_date(topic_last_post_time)+(1/24 * 8)),'yyyy/mm/dd hh24:mi:ss') The_Date
from phpbb3.bb_topics
order by topic_last_post_time desc;

輸出:
TOPIC_LAST_POST_TIME THE_DATE
---------------------- -------------------
1240377461 2009/04/22 13:17:41
1240297383 2009/04/21 15:03:03
1240295755 2009/04/21 14:35:55

Yes! 這樣就可以用SQL去抓資料啦,提供給有使用Oracle DB的朋友們參考。

再次謝謝謝謝心靈捕手大師的回覆。
主題已鎖定

回到「[3.0.x] 安裝與使用」