 |
(PHP 3, PHP
4) date - формат локального времени/даты. Описаниеstring
date (string format [, int timestamp]) Возвращает строку, отформатированную
в соответствии со строкой формата с использованием заданного целочисленного timestamp
или текущего локального времени, если timestamp/"штамп времени" не задан.
Примечание: правильный диапазон значений для timestamp обычно:
с Fri, 13 Dec 1901 20:45:54 GMT до Tue, 19 Jan 2038 03:14:07 GMT. (Это даты, соответствующие
максимальному и минимальному значениям 32-битного целого числа). В windows этот
диапазон ограничен датами от 01-01-1970 до 19-01-2038. Для генерации timestamp
из строки, представляющей дату, вы можете использовать strtotime().
Кроме того, некоторые базы данных имеют функции для конвертации их форматов даты
в timestamp'ы (такие как функция MySQL'а UNIX_TIMESTAMP).
В
строке формата распознаются следующие символы: - a - "am" или "pm"
- A
- "AM" или "PM"
- B - время Swatch Internet
- d - день (число) месяца,
2 цифры с ведущим нулём, если необходимо; т. е. от "01" до "31"
- D - день
недели, буквенный, 3 буквы; например, "Fri"
- F - месяц, буквенный, long;
например, "January"
- g - час, 12-часовой формат без ведущих нулей; т.е.
от "1" до "12"
- G - час, 24-часовой формат без ведущих нулей; т.е. от "0"
до "23"
- h - час, 12-часовой формат; т.е. от "01" до "12"
- H - час,
24-часовой формат; т.е. от "00" до "23"
- i - минуты; т.е. от "00" до "59"
- I
(заглавная i) - "1", если Daylight Savings Time, "0" - в противном случае.
- j
- день (число) месяца без ведущих нулей; т.е. от "1" до "31"
- l ('L' в
нижнем регистре) - день недели, буквенный, long; например, "Friday"
- L
- boolean, указывающее, високосный ли год; т.е. "0" или "1"
- m - месяц;
т.е. от "01" до "12"
- M - месяц, буквенный, 3 буквы; например, "Jan"
- n
- месяц без ведущих нулей; т.е. от "1" до "12"
- O - Разница с временем
по Гринвичу, в часах; например, "+0200"
- r - RFC 822 формат даты; например,
"Thu, 21 Dec 2000 16:01:07 +0200" (введён в PHP 4.0.4)
- s - секунды; т.е.
от "00" до "59"
- S - простой английский суффикс для дня (числа) месяца,
2 символа; т.е. "st", "nd", "rd" или "th"
- t - количество дней в данном
месяце; т.е. от "28" до "31"
- T - установка Timezone/Часовой пояс на данной
машине; например, "EST" или "MDT"
- U - секунды эпохи Unix Epoch (начиная
с January 1 1970 00:00:00 GMT)
- w - день недели, числовой, т.е. от "0"
(Sunday) до "6" (Saturday)
- W - ISO-8601 номер недели в году, недели начинаются
с понедельника/Monday (введено в PHP 4.1.0)
- Y - год, 4 цифры; например,
"1999"
- y - год, 2 цифры; например, "99"
- z - день года; т.е. от
"0" до "365"
- Z - смещение часового пояса, в секундах (т.е. от "-43200"
до "43200"). Смещение часовых поясов к западу от UTC всегда отрицательное, а для
поясов в востоку от UTC - всегда положительное.
Нераспознаваемые символы
в строке формата печатаются как есть. Формат "Z" всегда возвращает "0" при использовании
gmdate().
Пример 1. date()
echo date ("l dS of F Y h:i:s A"); echo "July 1, 2000 is on a " .
date ("l", mktime(0,0,0,7,1,2000)); | |
Вы
можете предотвратить развёртывание распознаваемого символа в строке формата, мнемонизируя
(заменяя) его вставкой перед ним обратного слэша (\). Если символ с обратным слэшем
уже является специальной последовательностью, вам может понадобиться также мнемонизировать
и обратный слэш. Пример
2. Escap-ирование символов в date()
echo date("l \\t\h\e jS"); // печатает что-нибудь вроде 'Saturday the 8th' |
|
Имеется
возможность совместного использования date() и mktime()
для поиска дат в будущем или в прошлом. Пример
3. date() и mktime()
$tomorrow = mktime (0,0,0,date("m") ,date("d")+1,date("Y")); $lastmonth =
mktime (0,0,0,date("m")-1,date("d"), date("Y")); $nextyear = mktime (0,0,0,date("m"),
date("d"), date("Y")+1); |
|
Примечание:
это может оказаться более надёжным, чем просто добавление или вычитание числа
секунд из дня или месяца, в timestamp, из-за использования перехода на летнее
время.
Далее идут некоторые примеры форматирования date().
Заметьте, что вы должны мнемонизировать любые другие символы, так как те из них,
которые имеют в настоящее время специальное значение, будут давать нежелательный
результат, а другие символы могут получить особое значение в будущих версиях PHP.
При мнемонизировании убедитесь в использовании одинарных кавычек для предотвращения
использования символов вроде \n как символов новой строки/newlines.
Пример 4. Форматирование date()
/* Сегодня March 10th, 2001, 5:16:18 pm */ $today = date("F j, Y,
g:i a"); // March 10, 2001, 5:16 pm $today = date("m.d.y"); // 03.10.01 $today
= date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('h-i-s,
j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01 $today = date('\i\t
\i\s \t\h\e jS \d\a\y.'); // Это 10-е число. $today = date("D M j G:i:s T Y");
// Sat Mar 10 15:16:08 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); //
17:03:17 m это месяц $today = date("H:i:s"); // 17:16:17 | | Для
форматирования дат на других языках вы должны использовать функции setlocale()
и strftime(). См. также getlastmod(),
gmdate(), mktime(),
strftime() и time(). |  |