Пятница, 17.05.2024, 02:50
DigitalBox
Приветствую Вас Гость | RSS
Главная Использование даты и времени Регистрация Вход
Меню сайта

Использование даты и времени



Дата и время являются важными элементами сценариев. Поэтому язык РНР предоставляет широкие возможности для их обработки. Компьютер хранит значения даты и времени в формате timestamp в секундах. Поскольку этот формат использовать неудобно, в языке РНР имеются различные встроенные функции для его преобразования.

Формат timestamp используется в операционной системе Unix и отсчитывает количество секунд, прошедших с 1 января 1970 года, 00:00:00 GMT. Этот формат чрезвычайно удобен при вычислении временной разницы между двумя событиями Для этого достаточно просто вычесть одно значение из другого.


Форматирование даты

Для форматирования даты чаще всего используется функция date(). Она возвращает строковое значение даты и времени в специальном формате. Функция date() имеет следующий общий синтаксис:

$mydate = date("формат", $ timestamp);

Параметр $timestamp содержит количество секунд. Как описывается в следующем разделе, это значение можно получить с помощью функции time() или mktime(). Если параметр $timestamp не указан, то используется текущая дата и время. Например:

$today = date("Y/m/d");

Если бы сегодня было 10 марта 2009 года, то в результате было бы выведено следующее значение:

2009/03/10

Строковый параметр формат определяет формат отображения даты и времени. Например, при использовании формата y-m-d функция date() вернула бы значение 09-3-10, а при использовании M.d.YMar.10.2009 . В таблице ниже приведены различные символы, которые можно использовать в строковом параметре формат. (Их полный перечень можно найти на Web-узле www.php.net. ) Различные элементы шаблона даты могут быть отделены друг от друга дефисом (-), точкой (.), косой чертой (/) или пробелом.

СимволЗначениеПример
M Трехбуквенное английское сокращение месяца Jan
F Английское название месяца January
m Месяц (две цифры с нулями) 02 ИЛИ 12
n Месяц (одна-две цифры без нулей) 1 ИЛИ 12
d День месяца (две цифры с нулями) 01 ИЛИ 14
j День месяца (две цифры без нулей) 3 или 30
l Английское название дня недели Friday
D Трехбуквенное английское сокращение дня недели Fri
W Порядковое число дня недели, от 0 (воскресенье) до 6 (суббота) 5
Y Год (четыре цифры) 2009
y Год (две цифры) 04
g Часы (12-часовой формат без нулей, от 1 до 12) 2 ИЛИ 10
G Часы (24-часовой формат без нулей, от о до 23) 2 ИЛИ 15
h Часы (12-часовой формат с нулями, от 0 1 до 12) 01 ИЛИ 10
H Часы (24-часовой формат с нулями, от о0 до 23) 00 ИЛИ 23
i Минуты 00 ИЛИ 59
s Секунды 00 ИЛИ 59
aдо или после полудня: am или рm (в нижнем регистре)am
AДО или ПОСЛЕ полудня: AM ИЛИ РМ (В верхнем регистре)AM
UЦелое число секунд, прошедших с 1 января 1970 года, 00:00:00 GMT1056244941


Хранение значений в формате timestamp

Для присваивания текущего значения даты и времени в формате timestamp предназначена функция time():

$today = time();

То же самое можно осуществить с помощью выражения:

$today = strtotime("today");

Для получения любого другого значения даты и времени в формате timestamp предназначена функция mktime(). Она имеет следующий синтаксис:

$importantDate = mktime(h, m, s, mo, d, y );

где аргумент h соответствует часам; m— минутам; s— секундам; mo — месяцу; d— дню; у — году. Например, для вычисления секунд, прошедших к 15 января 2004 года, необходимо использовать следующее выражение:

$importantDate = mktime(0, 0, 0, 1, 15, 2003);

Для получения значений в формате timestamp можно использовать различные английские ключевые слова или сокращения. Например, приведенное выше выражение можно переписать следующим образом:

$importantDate = strtotime("January 15 2003");

Функция strtotime() может распознавать следующие слова и сокращения:

  • Название месяцев: 12 месяцев и соответствующие сокращения.
  • Название дней недели: 7 дней и соответствующие сокращения.
  • Название единиц времени: year (год), month (месяц), fortnight (две недели), week (неделя), day (день), hour (час), minute (минута), second (секунда), am (до полудня), рm (после полудня).
  • Некоторые английские слова: ago (тому назад), now (сейчас), last (длиться), next (следующий); this (этот), tomorrow (завтра), yesterday (вчера).
  • Знаки "плюс" и "минус".
  • Все числа.
  • Временные зоны: например, gmt (Greenwich Mean Time — среднее время по Гринвичу) или pdt (Pacific Daylight Time — дневное тихоокеанское время).

Слова и сокращения можно по-разному комбинировать. Например:

$importantDate = strtotime("tomorrow");           # 24 часа от сегодня
$importantDate = strtotime("now + 24 hours");
$importantDate = strtotime("last Saturday");
$importantDate = strtotime("8pm + 3 days");
$importantDate = strtotime("2 weeks ago");      # две недели назад
$importantDate = strtotime("next year gmt");   # на один год вперед
$importantDate = strtotime(" tomorrow 4am");

Для нахождения временной разницы между событиями достаточно просто вычесть одно значение из другого. Например, если переменная $importantDate описывает прошедшее событие, то для определения его "давности" соответствующее значение нужно отнять от значения переменной $today (которая должна быть определена ранее). Например:

$timeSpan = $today-$importantDate;

Полученное значение и будет временной разницей в секундах между двумя событиями. Перевести это значение в часы можно следующим образом:

$timeSpan = (($today-$importantDate)/60)/60;

Форма входа

Мини-чат

Календарь новостей
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Поиск

Друзья сайта
Скажи сайту спасибо
ЯндексЯндекс. ДеньгиХочу такую же кнопку



Получить WMR-бонус на свой кошелек!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024 Бесплатный конструктор сайтов - uCoz