Date Helper
ไฟล์ Date Helper มีฟังก์ชันที่ใช้ทำงานกับวันที่
เรียกใช้งานผู้ช่วยนี้
ผู้ช่วยนี้จะถูกเรียกใช้งานได้จากโค้ดต่อไปนี้
$this->load->helper('date');
ต่อไปจะกล่าวถึงฟังชั่นที่มีให้ใช้งาน
now()
คืนค่าเวลา ณ ปัจจุบันเป็นเวลาประทับแบบ Unix โดยอ้างอิงจากเวลาของเซิร์ฟเวอร์คุณซึ่งเป็นเวลาท้องถิ่งหรือ GMT โดยขึ้นอยู่กับ "เวลาที่อ้างอิง" ที่ถูกตั้งค่าอยู่ในไฟล์ตั้งค่า (config file) ถ้าคุณไม่ได้ตั้งใจจะตั้งเวลาของคุณให้อ้างอิงตาม GMT(ซึ่งคุณจะทำถ้าคุณต้องการให้ผู้ใช้งานของเว็บคุณสามารถตั้งค่าเวลา timezone ได้เอง) ไม่มีประโยชน์ที่จะใช้ฟังก์ชันนี้เนื้อฟังก์ชัน time()
mdate()
ฟังก์ชันนี้เหมือนกับฟังก์ชัน date() ของ PHP ยกเว้นว่ามันยอมให้คุณใช้รูปแบบโค้ดวันที่แบบ MySQL โดยโค้ดแต่ละตัวอักษรจะมีตัวนำหน้าเป็น % อย่างเช่น %Y %m %d ฯลฯ
ประโยชน์ที่ใช้วันที่แบบนี้ก็คือคุณไม่ต้องเป็นห่วงในการยกเว้นตัวอักษรที่ไม่ใช่วันที่โค้ด อย่างปกติที่คุณต้องทำในฟังก์ชัน date() ยกตัวอย่างเช่น
$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";
$time = time();
echo mdate($datestring, $time);
ถ้าเวลาประทับไม่ถูกใช้ในพารามิเตอร์ที่สองเวลาปัจจุบันจะถูกใช้แทนโดยทันที
standard_date()
ให้คุณสร้างสตริงวันที่จากหนึ่งในหลายๆรูปแบบมาตรฐาน ตัวอย่างเช่น
$format = 'DATE_RFC822';
$time = time();
echo standard_date($format, $time);
พารามิเตอร์ตัวแรกต้องใส่รูปแบบ พารามิเตอร์ที่สองต้องใส่วันที่เป็นเวลาประทับแบบ Unix
Supported formats:
| ค่าคงที่ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| DATE_ATOM | Atom | 2005-08-15T16:13:03+0000 |
| DATE_COOKIE | HTTP Cookies | Sun, 14 Aug 2005 16:13:03 UTC |
| DATE_ISO8601 | ISO-8601 | 2005-08-14T16:13:03+0000 |
| DATE_RFC822 | RFC 822 | Sun, 14 Aug 2005 16:13:03 UTC |
| DATE_RFC850 | RFC 850 | Sunday, 14-Aug-05 16:13:03 UTC |
| DATE_RFC1036 | RFC 1036 | Sunday, 14-Aug-05 16:13:03 UTC |
| DATE_RFC1123 | RFC 1123 | Sun, 14 Aug 2005 16:13:03 UTC |
| DATE_RFC2822 | RFC 2822 | Sun, 14 Aug 2005 16:13:03 +0000 |
| DATE_RSS | RSS | Sun, 14 Aug 2005 16:13:03 UTC |
| DATE_W3C | World Wide Web Consortium | 2005-08-14T16:13:03+0000 |
local_to_gmt()
เอาวันประทับแบบ Unix เป็นค่านำเข้าและส่งค่าคืนเป็น GMT ตัวอย่างเช่น
$now = time();
$gmt = local_to_gmt($now);
gmt_to_local()
นำวันประทับแบบ Unix (ที่จะถูกอ้างอิงเป็น GMT) เป็นค่านำเข้าและเปลี่ยนค่ามันเป็นวันประทับตามท้องถิ่น โดยขึ้นอยู่กับ timezone และเวลา Daylight Saving ที่ใส่เข้ามา ตัวอย่างเช่น
$timestamp = '1140153693';
$timezone = 'UM8';
$daylight_saving = TRUE;
echo gmt_to_local($timestamp, $timezone, $daylight_saving);
ข้อสังเกตุ: สำหรับ timezone ทั้งหมดอยู่ด้านล่างของหน้านี้
mysql_to_unix()
เปลี่ยนวันประทับแบบ MySQL ไปเป็นแบบ ตัวอย่างเช่น
$mysql = '20061124092345'; // หรือ 2006-11-24 09:23:45 ก็ใช้ได้เหมือนกัน
$unix = mysql_to_unix($mysql);
unix_to_human()
เปลี่ยนจากวันประทับ Unix และคืนค่ามันเป็นรูปแบบที่มนุษย์สามารถอ่านออกได้อย่างตัวอย่างนี้
YYYY-MM-DD HH:MM:SS AM/PM
สิ่งนี้เป็นประโยชน์ถ้าคุณต้องการแสดงวันที่ในฟอร์มเพื่อถูกส่งต่อ
วันเวลาสามารถถูกจัดรูปแบบทั้งมีหรือไม่มีวินาทีก็ได้ และมันยังสามารถตั้งค่าเป็นรูปแบบ European หรือ US ได้ถ้าใส่วันประทับอย่างเดียวมันจะคืนค่าเป็นเวลาโดยไม่มีวินาทีและอยู่ในรูปแบบ U.S. ตัวอย่างเช่น
$now = time();
echo unix_to_human($now); // U.S. time, no seconds
echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds
echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds
human_to_unix()
ทำงานตรงข้ามกับฟังก์ชันด้านบน โดยเปลี่ยนจากเวลา "มนุษย์อ่านออก" เป็นเวลาแบบ Unix โดยฟังก์ชันนี้จะเป็นประโยชน์ถ้าคุณรับข้อมูลมาเป็นแบบ "มนุษย์อ่านออก" ที่ถูกส่งมาจากฟอร์ม จะคืนค่า FALSE (ตรรกะ) ถ้าสตริงที่ส่งไปไม่ถูกจัดอยู่ในรูปแบบที่ถูกต้องที่แสดงดังนต่อไปนี้
$now = time();
$human = unix_to_human($now);
$unix = human_to_unix($human);
timespan()
เปลี่ยนรูปแบบจากวันประทับแบบ unix เปลี่ยนเป็นตัวอย่างดังนี้
1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes
พารามิเตอร์ตัวแรกจะต้องใส่วันประทับแบบ Unix และพารามิเตอร์ที่สองนั้นต้องใส่วันประทับ Unix ที่มากกว่าตัวแรก ถ้าตัวที่สองเป็นค่าว่าง มันจะใช้เวลาปัจจุบันแทน จุดประสงค์ทั่วไปสำหรับฟังก์ชันนี้คือแสดงให้รูปว่าเวลาผ่านไปเท่าไรแล้วจากเวลาจุดหนึ่งไปยังอีกจุดหนึ่งตัวอย่างเช่น
$post_date = '1079621429';
$now = time();
echo timespan($post_date, $now);
ข้อสังเกตุ: ตัวอักษรที่ถูกสร้างขึ้นจากฟังก์ชันนี้ พบได้จากไฟล์ภาษาดังนี้ language/<your_lang>/date_lang.php
days_in_month()
คืนจำนวนวันของเดือนและปีที่ใส่ไป โดยรองรับปีอธิกสุรทิน ตัวอย่างเช่น
echo days_in_month(06, 2005);
ถ้าพารามิเตอร์สองเป็นค่าว่าง ปีปัจจุบันจะถูกใช้แทน
timezones()
นำ timezone ที่ถูกใช้ (สำหรับรายการ timezone ที่ถูกต้องดู "Timezone Reference" ด่านล่าง) และคืนค่าจำนวนชั่วโมงที่แตกต่างจาก UTC.
echo timezones('UM5');
ฟังก์ชันนี้จะเป็นประโยชน์เมื่อถูกใช้กับ timezone_menu().
timezone_menu()
สร้างเมนูแบบเลือกลงของ timezone อย่างเช่นแบบนี้
เมนูนี้จะเป็นประโยชน์ถ้าคุณยอมให้สมาชิกเว็บไซต์ของคุณตั้งค่า timezone ถ้องถิ่นเองได้
พารามิเตอร์ตัวแรกยอมให้คุณตั้งค่า "selected" ของเมนู ตัวอย่างเช่นตั้งค่าเป็น Pacific time เป็นค่าปกติจะต้องทำเช่นนี้
echo timezone_menu('UM8');
กรุณาดูเอกสารอ้างอิง timezone ด้านล่างเพื่อดูค่าผลลัพธ์สำหรับเมนูนี้
พารามิเตอร์ที่สองยอมให้คุณตั้งค่าชื่อคลาส CSS สำหรับเมนูนี้
ข้อสังเกตุ: ข้อความที่ใส่อยู่ในเมนูนั้นพบได้ในไฟล์ภาษาที่นี้ language/<your_lang>/date_lang.php
เอกสารอ้างอิง Timezone
ตารางดังต่อไปนี้แสดงแต่ละ timezone และสถานที่ของ timezone
| Time Zone | Location |
|---|---|
| UM12 | (UTC - 12:00) Enitwetok, Kwajalien |
| UM11 | (UTC - 11:00) Nome, Midway Island, Samoa |
| UM10 | (UTC - 10:00) Hawaii |
| UM9 | (UTC - 9:00) Alaska |
| UM8 | (UTC - 8:00) Pacific Time |
| UM7 | (UTC - 7:00) Mountain Time |
| UM6 | (UTC - 6:00) Central Time, Mexico City |
| UM5 | (UTC - 5:00) Eastern Time, Bogota, Lima, Quito |
| UM4 | (UTC - 4:00) Atlantic Time, Caracas, La Paz |
| UM25 | (UTC - 3:30) Newfoundland |
| UM3 | (UTC - 3:00) Brazil, Buenos Aires, Georgetown, Falkland Is. |
| UM2 | (UTC - 2:00) Mid-Atlantic, Ascention Is., St Helena |
| UM1 | (UTC - 1:00) Azores, Cape Verde Islands |
| UTC | (UTC) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia |
| UP1 | (UTC + 1:00) Berlin, Brussels, Copenhagen, Madrid, Paris, Rome |
| UP2 | (UTC + 2:00) Kaliningrad, South Africa, Warsaw |
| UP3 | (UTC + 3:00) Baghdad, Riyadh, Moscow, Nairobi |
| UP25 | (UTC + 3:30) Tehran |
| UP4 | (UTC + 4:00) Adu Dhabi, Baku, Muscat, Tbilisi |
| UP35 | (UTC + 4:30) Kabul |
| UP5 | (UTC + 5:00) Islamabad, Karachi, Tashkent |
| UP45 | (UTC + 5:30) Bombay, Calcutta, Madras, New Delhi |
| UP6 | (UTC + 6:00) Almaty, Colomba, Dhaka |
| UP7 | (UTC + 7:00) Bangkok, Hanoi, Jakarta |
| UP8 | (UTC + 8:00) Beijing, Hong Kong, Perth, Singapore, Taipei |
| UP9 | (UTC + 9:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk |
| UP85 | (UTC + 9:30) Adelaide, Darwin |
| UP10 | (UTC + 10:00) Melbourne, Papua New Guinea, Sydney, Vladivostok |
| UP11 | (UTC + 11:00) Magadan, New Caledonia, Solomon Islands |
| UP12 | (UTC + 12:00) Auckland, Wellington, Fiji, Marshall Island |