ฟังก์ชัน Time ago โมดูลที่ช่วยจัดการเรื่องการแสดงผลเวลา

หลายๆคนอาจจะกำลังมองหา เหมือนกับที่ผมหาก็เป็นได้ เมื่อต้องการเขียนฟังก์ชันแสดงผลเวลาให้ User ดูแล้วเข้าใจง่ายๆ เหมือนที่หลายๆเจ้าใช้ เช่น Facebook เมื่อเราโพสต์อะไรไป มันก็จะแสดงว่าลาว่า “เพิ่มโพสไปเมื่อสักครู่” , “เพิ่งโพสไปไม่กี่นาทีที่แล้ว” , หรือ “เมื่อชั่วโมงที่แล้ว” เป็นต้น
วันนี้ผมก็เลยเอา PHP Module ตัวนี้แหละ ที่ไปเจอมา แล้วเท่าที่ลองใช้ดูมันเวิร์คใช้ได้เลยแหละ ลองโหลดมาดูนะครับที่
https://github.com/jimmiw/php-time-ago
php-time-ago
หลังจากที่เราโหลดมาแล้ว จะมีไฟล์ให้แก้นิดหน่อย เปิดไฟล์ timeago.inc.php ขึ้นมา
php-time-ago-master
จุดแรกเลยคือภาษา ซึ่งภาษาเริมต้นที่ตัวโมดูลกำหนดมาให้จะเป็นภาษาอังกฤษ (en) เราสามารถเปลี่ยนเป็นภาษาอื่นๆได้
ScreenHunter_03 Oct. 04 16.02

โดยภาษาที่เราสามารถเลือกเปลี่ยนได้จะอยู่ในโฟลเดอร์ชื่อ translations ซึ่งจากที่ผมเปิดดูก็มีภาษาให้เลือกไม่กี่ภาษา
ScreenHunter_04 Oct. 04 16.05
ข้อดีคือเราสามารถสร้างภาษาเพิ่มขึ้นมาเองได้ เช่น สมมติอยากจะสร้างไฟล์ภาษาไทย ผมก็คัดลอกไฟล์ แล้วบันทึกชื่อใหม่เป็น th.php จากนั้นเราก็แก้คอนฟิกในไฟล์ timeago.inc.php ให้เป็น th ตามที่เราต้องการ

อีกจุดหนึ่งที่ต้องแก้ไขคือ Time zone หรือ โซนเวลา เพราะถ้าไม่แก้ การคำนวณอาจจะเพี้ยนไม่ตรงกับความเป็นจริง จาก Time Zone เริ่มต้นที่ให้มาเป็น Europe/Copenhagen ผมแก้ไขเป็น Asia/Bangkok เมื่อนำมาติดตั้งในเซิร์ฟเวอร์บ้านเรา ค่าเวลาที่คำนวณออกมาก็จะถูกต้องนั่นเอง
ScreenHunter_05 Oct. 04 16.10

อันนี้คือภาพหลังจากที่เราทำการแก้ไขเรียบร้อย
ScreenHunter_07 Oct. 04 16.13

การใช้งานนั้นก็ไม่ยากครับ สำหรับ PHP ก็ทำการ include ไฟล์ timeago.inc.php เข้ามา
ScreenHunter_08 Oct. 04 16.16

จากนั้นอยากจะแสดเวลาที่ไหนก็จัดไปได้เลย โดยค่าที่ผมส่งให้เป็น Time Stamp ธรรมดาๆ ไม่ได้มีการปรับฟอร์แมตใดๆ
ScreenHunter_09 Oct. 04 16.17

แล้วผลลัพธ์ที่ออกมาก็ค่อนข้างน่าพอใจสวยงามเลยทีเดียวครับ
ScreenHunter_10 Oct. 04 16.19

อันนี้ก็เป็นตัวอย่างการเอาโมดูลง่ายๆ ที่เอามาช่วยเราเรื่องการแสดงผลเวลา ยังมีอีกหลายโมดูลมากที่ผมใช้งาน เดี๋ยวว่างๆ นึกอันไหนได้ ก็จะเอามาเขียนลงบล็อก แชร์ให้อ่านกันนะครับ

Share to :
Pongpat Janthai
Pongpat Janthai

Computor Engineering Of Khon Kaen University

Articles: 361