Функции для работы с датой и временем. Получение текущей даты, даты создания файла и проверка корректности введенной даты

Опубликовал: Четверг, Март 8, 2012 в категории HTML | Пока нет комментариев

Для работы с датами в PHP чаще всего применяются следующие функции:

? date_default_timezone_set(<Зона>) настраивает зону местного времени:

date_default_timezone_set(‘Europe/Moscow’);

? time() возвращает количество секунд, прошедшее с 1 января 1970 г.:

echo time();

? date(<Строка формата даты/времени>, [<Исходная дата>]) возвращает дату и время.

В параметре <Строка формата даты/времени> могут быть использованы следующие служебные символы:

• U — количество секунд, прошедшее с 1 января 1970 г.;

• Y — год из 4 цифр;

• y — год из 2 цифр;

• z — день с начала года (от 0 до 365);

• F — название месяца по-английски;

• m — номер месяца с предваряющим нулем (от "01" до "12");

• n — номер месяца без предваряющего нуля (от "1" до "12");

• M — аббревиатура месяца из 3-х букв по-английски;

• d — номер дня с предваряющим нулем (от "01" до "31");

• j — номер дня без предваряющего нуля (от "1" до "31");

• l — название дня недели по-английски;

• w — номер дня недели (0 — для воскресенья и 6 — для субботы);

• D — аббревиатура дня недели из 3-х букв по-английски;

• A — "AM" (до полудня) или "PM" (после полудня);

• a — "am" (до полудня) или "pm" (после полудня);

• H — часы в 24-часовом формате (от "00" до "23");

• h — часы в 12-часовом формате (от "01" до "12");

• i — минуты (от "00" до "59");

• s — секунды (от "00" до "59").

echo date("U - Y - y - z - F - m - n - M - d – j") . "<br>";

echo date("l - w - D - A - a - H - h - i - s");

// Выведет:

// 1226784874 - 2008 - 08 - 320 - November - 11 - 11 - Nov - 16 – 16

// Sunday - 0 - Sun - AM - am - 00 - 12 - 34 - 34

Выведем текущую дату и время таким образом, чтобы день недели и месяц были написаны по-русски (листинг 5.15).

Листинг 5.15. Вывод текущей даты

date_default_timezone_set(‘Europe/Moscow’);

$day = array(‘воскресенье’, ‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’,

‘пятница’, ‘суббота’);

$month = array(”, ‘января’, ‘февраля’, ‘марта’, ‘апреля’, ‘мая’, ‘июня’,

‘июля’, ‘августа’, ‘сентября’, ‘октября’, ‘ноября’,

‘декабря’);

$date = ‘Сегодня<br>’;

$date .= $day[(int)date('w')];

$date .= date(‘ d ‘);

$date .= $month[(int)date('n')];

$date .= date(‘ Y’);

$date .= date(‘ H:i:s’) . ‘<br>’ . date(‘d.m.y’);

echo $date;

Код, представленный в листинге 5.15, выведет

Сегодня

понедельник 16 ноября 2009 00:37:08

16.11.09

Если в функции date() указан второй параметр, то дата будет не текущая, а соответствующая значению из второго параметра. Например, в функцию можно передать количество секунд, прошедших с 1 января 1970 г., и полу- чить любое другое форматирование даты.

$date = date("Дата d-m-Y", 1180986651);

echo $date;

// Выведет Дата 04-06-2024

Или можно получить дату создания файла:

$date = date("Дата d-m-Y", filectime("index.php"));

echo $date;

// Выведет Дата 20-06-2024

Функция strftime() позволяет отформатировать дату в зависимости от на-

строек локали. Имеет следующий формат:

strftime(<Строка формата даты/времени>[,

<Количество секунд, прошедшее с 1 января 1970 г.>])

Если второй параметр не указан, то используется значение, возвращаемое функцией time(). В параметре <Строка формата даты/времени> могут быть использованы следующие служебные символы:

? %y — год из 2 цифр;

? %Y — год из 4 цифр;

? %j — день с начала года (от "001" до "366");

? %m — номер месяца с предваряющим нулем (от "01" до "12");

? %b — сокращенное название месяца в текущей локали: setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251"); echo strftime("%b"); // ноя

? %B — полное название месяца в текущей локали:

setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251");

echo strftime("%B"); // Ноябрь

? %W — номер недели в году. Первый понедельник года считается первым днем первой недели;

? %d — номер дня с предваряющим нулем (от "01" до "31");

? %a — сокращенное название дня недели в текущей локали: setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251"); echo strftime("%a"); // Вт

? %A — полное название дня недели в текущей локали:

setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251");

echo strftime("%A"); // вторник

? %H — часы в 24-часовом формате (от "00" до "23");

? %I — часы в 12-часовом формате (от "01" до "12");

? %M — минуты (от "00" до "59");

? %S — секунды (от "00" до "59");

? %Z — временная зона:

setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251");

echo strftime("%Z"); // Московское время (зима)

? %c — формат даты и времени по умолчанию в текущей локали: setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251"); echo strftime("%c"); // 17.11.2024 18:14:25

? %x — представление даты в текущей локали:

setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251");

echo strftime("%x"); // 17.11.2024

? %X — представление времени в текущей локали: setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251"); echo strftime("%X"); // 18:14:25

? %% — символ "%".

Функция checkdate() позволяет проверить корректность введенной даты.

Имеет следующий формат:

checkdate(<Месяц>, <День>, <Год>);

Функция возвращает true, если дата, заданная аргументами, является пра-

вильной. Дата считается правильной, если:

? год в диапазоне от 1 до 32767 включительно;

? месяц в диапазоне от 1 до 12 включительно;

? день является допустимым номером дня для месяца, заданного аргумен-

том <Месяц>:

if (checkdate(5, 32, 2008)) echo "Дата правильная";

else echo "Нет"; // Т.к. даты 32.05.2024 нет, выведет: Нет

Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)

Add to Social Bookmarks
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • BobrDobr
  • Mr. Wong
  • Yandex.Bookmarks
  • Text 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Google Bookmarks
  • Pisali
  • SMI 2
  • Moe Mesto
  • 100 Zakladok
  • Vaau!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>