Giới thiệu về Date Helper trong CI
Chúng ta có rất nhiều API giúp làm việc với thời gian, một trong những API có sẵn trong bộ framework của CI đó là Date Helper, nó là một tiện ích đi kèm được support trong CI từ những version đầu tiên đến nay. Bài viết sẽ hướng dẫn các bạn cách sử dụng Date Helper. Date helper cung cấp cho ...
Chúng ta có rất nhiều API giúp làm việc với thời gian, một trong những API có sẵn trong bộ framework của CI đó là Date Helper, nó là một tiện ích đi kèm được support trong CI từ những version đầu tiên đến nay. Bài viết sẽ hướng dẫn các bạn cách sử dụng Date Helper.
Date helper cung cấp cho chúng ta rất nhiều function để xử lý những vấn đề liên quan đến thời gian. Chúng ta sẽ tìm hiểu từng function một để hiểu thêm về nó.
Load Date helper
Để sử dụng được toàn bộ các hàm bên trong nó, chúng ta phải load helper vào controller để sử dụng bằng cú pháp sau:
$this->load->helper('date');
Các hàm thông dụng của Date helper
function now() Hàm này trả về thời gian hiện tại trong hệ thống Unix. Kiểu thời gian trả về có thể là thời gian local của vị trí đặt Server của hệ thống hoặc thời gian chuẩn GMT, chúng ta có thể thiết lập kiểu trả về bằng cách cấu hình lại ở vị trí $$onfig['time_reference'] trong file config.php.
Nếu thiết lập giá trị nó là local thì hàm now() này không khác gì hàm time() trong php thuần.
function mdate() Hàm này tương đương với hàm date() của php thuần, chỉ khác ớ chỗ là mỗi kiểu hiển thị date thì phải bắt đầu bằng prefix %. Cái này rất hữu ích nếu chúng ta muốn hiển thị thông tin theo ngày, tháng, năm.
$dateFormat = "Year: %Y Month: %m Day: %d - %h:%i %a"; echo mdate($dateFormat, time());
Kết quả là: Year: 2015 Month: 06 Day: 27 - 09:26 AM
function standard_date() Hàm này cho phép chúng ta tạo ra các kiểu thời gian theo tiêu chuẩn nhất định nào đó.
$format = 'DATE_RFC822'; echo standard_date($format, time());
Tham số đầu tiên chứa kiểu chuẩn thời gian, tham số thứ hai chứa ngày theo chuẩn Unix.
Các định dạng chuẩn được hỗ trợ:
Constant | Description |
---|---|
DATE_ATOM | Atom |
DATE_COOKIE | HTTP Cookies |
DATE_ISO8601 | ISO-8601 |
DATE_RFC822 | RFC 822 |
DATE_RFC850 | RFC 850 |
DATE_RFC1036 | RFC 1036 |
DATE_RFC1123 | RFC 1123 |
DATE_RFC2822 | RFC 2822 |
DATE_RSS | RSS |
DATE_W3C | World Wide Web Consortium |
function gmt_to_local() Hàm này sẽ lấy một mốc thời gian kiểu Unix( tương ứng với kiểu GMT ) làm đầu vào và chuyển đổi thành mốc thời gian local dựa vào múi giờ và thời gian yêu cầu lên hệ thống.
$timeStamp = '1140154578'; echo gmt_to_local($timeStamp, 'UM8', TRUE);
** function mysql_to_unix()** Hàm này lấy một mốc thời gian trong MySql làm đầu vào và chuyển thành dạng Unix.
$time = '20061127458961'; echo mysql_to_unix($time);
function unix_to_human() Hàm này lấy một mốc thời gian kiểu Unix và chuyển đổi thành kiểu chúng ta có thể hiểu được như là : Năm-Tháng-Ngày Giờ:Phút:Giáy AM/PM
Hàm này rất hữu dụng khi cần hiển thị ngày tháng trong một form của hệ thống.
$now = time(); echo unix_to_human($now); echo unix_to_human($now, TRUE, 'us'); echo unix_to_human($now, TRUE, 'eu');
function human_to_unix() Hàm này ngược với hàm unix_to_human(). Hàm này trả về FALSE nếu chuỗi đầu vào không phải định dạng kiểu 'con người hiểu được' ở trên.
$now = time(); $human = unix_to_human($now); $unix = human_to_unix($human); echo $human.'---'.$unix;
function timespan()
Hàm này chuyển đổi một mốc thời gian nào đó ở kiểu Unix về dạng :
1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes Tham số thứ nhất của hàm phải chứa một mốc thời gian kiểu Unix, tham số thứ hai phải chứa một mốc thời gian lớn hơn mốc ở tham số thứ nhất.
Nếu tham số thứ 2 là rỗng thì hệ thống sẽ sử dụng thời điểm hiện tại làm giá trị mặc định.
Mục đích chung của hàm này là hiển thị lượng thời gian đã trôi qua tính từ một điểm nào đó trong quá khứ đến bây giờ.
$time = '1079627845'; echo timespan($time, time());
function days_in_month()
Hàm này trả về số ngày trong một tháng/năm cho trước.
echo days_in_month(06, 2015);
function timezones()
Hàm này lấy một múi giờ tham chiếu làm đầu vào và trả về số giờ cách biệt so với mốc UTC.
Hàm này rất hữu ích khi được dùng cùng với hàm timezone_menu().
echo timezones('UM5');
function timezone_menu()
Hàm này sinh ra một list danh sách các múi giờ trên thế giới.
Tham số đầu của hàm này dùng để thiết lập giá trị mặc định cho múi giờ nào đó.
Tham số thứ hai của hàm dùng để đặt tên class cho thành phần Select được sinh ra.
echo timezone_menu('UM8');
Bảng tham chiếu múi giờ trên thế giới
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 |
Chúc các bạn thành công. Bài viết có tham khảo tài liệu của CI.