Форматування дати в Symfony
Symfony
lock
1 лютого 2012 р. 12:13
В Symfony є дуже зручний помічник DateHelper, який можна використовувати для форматування дати. Одна з найбільш використовуваних функцій цього класу - це format_date(). В цій статті Ви знайдете огляд парметрів, що приймає функція, а також будуть наведені результати виконання format_date з різноманітними параметрами.
Увага! Для використання format_date() необхідно підключити помічник Date. У шаблонах (templates) це робиться наступним чином: use_helper('Date'), в дієх (actions) - sfProjectConfiguration::getActive()->loadHelpers('Date').
Функція format_date приймає чотири параметри:
function format_date($date, $format = 'd', $culture = null, $charset = null){
...
}
где,
- date - дата, яку потрібно відформатувати;
- format - формат дати, який ви хочете використовувати;
- culture - локалізація для форматування дати ('en', 'ru', 'uk' і т.д);
- charset - кодування ('utf-8', 'cp1251' і т.д.)
Нижче представлений простий приклад використання функції format_date:
<?php
use_helper('Date');
echo format_date(time());
// 27.01.12 якщо локалізація за замовчуванням 'ru'
// 1/27/12 якщо локалізація за замовчуванням 'en'
?>
Є багато різних параметрів, які можна використовувати для форматування дати. Нижче наведено список найбільш використовуваних параметрів для форматування дати:
Локалізація: en
- d: 1/27/12
- D: January 27, 2012
- p: Jan 27, 2012
- P: Friday, January 27, 2012
- t: 12:52 PM
- T: 12:52:44 PM EET
- q: 12:52:44 PM
- Q: 12:52:44 PM EET
- f: January 27, 2012 12:52 PM
- F: January 27, 2012 12:52:44 PM EET
- g: 1/27/12 12:52 PM
- G: 1/27/12 12:52:44 PM EET
- i: 2012-01-27
- I: 2012-01-27 12:52:44
- M: January 27
- m: January 27
- R: Fri, 27 Jan 2012 12:52:44
- r: Fri, 27 Jan 2012 12:52:44
- s: 2012-01-27T12:52:44
- u: 2012-01-27 12:52:44 EET
- U: Friday 27 January 2012 12:52:44
- Y: 2012 January
- y: 2012 January
Локалізація: ru
- d: 27.01.12
- D: 27 января 2012 г.
- p: 27.01.2012
- P: пятница, 27 января 2012 г.
- t: 12:54
- T: 12:54:22 EET
- q: 12:54:22
- Q: 12:54:22 EET
- f: 27 января 2012 г. 12:54
- F: 27 января 2012 г. 12:54:22 EET
- g: 27.01.12 12:54
- G: 27.01.12 12:54:22 EET
- i: 2012-01-27
- I: 2012-01-27 12:54:22
- M: января 27
- m: января 27
- R: Пт, 27 янв. 2012 12:54:22
- r: Пт, 27 янв. 2012 12:54:22
- s: 2012-01-27T12:54:22
- u: 2012-01-27 12:54:22 EET
- U: пятница 27 января 2012 12:54:22
- Y: 2012 января
- y: 2012 января
Наприклад,
<?php
use_helper('Date');
echo format_date( time(), 't') ; // виведе 12:54
?>
За допомогою попередніх параметрів відбувається форматування дати відповідно до внутрішніх шаблонів операційної системи. Якщо ці параметри не відповідають Вашим потребам, Ви можете самостійно обрати формат дати, використовуючи комбінацію з наступних параметрів:
Рід:
- yy: 12 // останні 2 цифри року
- yyyy: 2012 // рік повністю
Місяць:
- M: 2 // номер місяця без лідируючих нулів
- MM: 02 // номер місяця
- MMM: февр. // чотирьохлітерне скорочення місяці в російській локалізації та трьохлітерне - в англійській (Feb)
- MMMM: февраля // повна назва місяця (в англійській локалізації - February)
День тижня:
- E: 5 // 1 - понеділок, 7 - неділя
- EE: П // однолітерне скорочення дня тижня (в англійській локалізації - F)
- EEE: Пт // двохлітерне скорочення дня тижня (в англійській локалізації - трьохлітерне Fri)
- EEEE: пятница // день тижня повністю (в англійській локалізації - Friday)
День місяця:
- d: 9 // день місяця без лідируючих нулів
- dd: 09 // день місяця з лідируючими нулями
- dddd: // п'ятниця (в англійській локалізації - Friday)
Ера:
- G: н.э. // в англійській локалізації - AD і BC
Години в 24-годинному форматі:
- H: 3 // години без лідируючих нулів
- HH: 03 // години з лідируючими нулями
AM/PM покажчик:
Час в 12-годинному форматі:
- h: 1 // години без лідируючих нулів
- hh: 01 // години з лідируючими нулями
Хвилини:
- m: 9 // хвилини без лідируючих нулів
- mm: 09 // хвилини з лідируючими нулями
Секунди:
- s: 7 // секунди без лідируючих нулів
- ss: 07 // секунди з лідируючими нулями
Часовий появ (параметр машини):
День в році:
День в місяці:
- F: 9 // день місяця без лідируючих нулів
- FF: 09 // день місяця з лідируючими нулями
Номер тижня в році:
Тиждень у місяці:
Кількість годин в 24-годинному форматі:
Кількість годин в 12-годинному форматі:
Наприклад, наступний код може вивести "2/5/10/н.э./33/2/40/10" в російській локалізації:
<?php
use_helper('Date');
echo format_date(time(), 'M/E/d/G/m/s/D/F' );
?>
Напишіть перше повідомлення!
Ви повинні увійти під своїм аккаунтом щоб залишати коментарі