Reg.ru: домены и хостинг

Крупнейший регистратор и хостинг-провайдер в России.

Более 2 миллионов доменных имен на обслуживании.

Продвижение, почта для домена, решения для бизнеса.

Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Перейти на сайт->

Бесплатный Курс "Практика HTML5 и CSS3"

Освойте бесплатно пошаговый видеокурс

по основам адаптивной верстки

на HTML5 и CSS3 с полного нуля.

Начать->

Фреймворк Bootstrap: быстрая адаптивная вёрстка

Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.

Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.

Верстайте на заказ и получайте деньги.

Получить в подарок->

Бесплатный курс "Сайт на WordPress"

Хотите освоить CMS WordPress?

Получите уроки по дизайну и верстке сайта на WordPress.

Научитесь работать с темами и нарезать макет.

Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

Получить в подарок->

*Наведите курсор мыши для приостановки прокрутки.


Определение текущей даты и времени в PHP

В этой статье разберемся с тем, как определить текущую дату и время.

Стоит ли говорить, что эта задача встанет перед нами в любом мало-мальски серьезном веб-приложении.

Итак, для определения текущей даты и времени можно воспользоваться функцией date(), передав ей в качестве аргумента следующую форматную строку:


print date('r');

Понятно, что вывод будет зависеть от времени и даты выполнения данного кода, но в целом это будет строка вида:


Fri, 11 Mar 2016 14:23:33 -0500

Другой вариант (чуть подлиннее) - воспользоваться объектом DateTime. Он содержит метод format(), который работает аналогично функции date():


$when = new DateTime();
print $when->format('r');

Это были примеры того, как можно дату и время целиком. Если же нас интересуют отдельные компоненты даты/времени, то стоит воспользоваться функцией getdate() или localtime().

Давайте посмотрим, как они работают, на примере ниже:


$now_1 = getdate();
$now_2 = localtime();

print "{$now_1['hours']}:{$now_1['minutes']}:{$now_1['seconds']}<br>";
print "$now_2[2]:$now_2[1]:$now_2[0]";

Результат выполнения данного кода будем иметь вид:


18:23:45
18:23:45


Детали

Как мы уже видели, функция date() и объект DateTime могут генерировать строки отформатированного времени и даты.

Возможности форматирования - это отдельная тема, которую мы, возможно, рассмотрим в одной из будущих статей.

Функции же localtime() и getdate() возвращают массивы, элементы которых являются составными частями даты или времени. Так, ассоциативный массив getdate() возвращает пары «ключ - значение», перечисленные ниже.

"Ключ - Значение":

seconds - Секунды
minutes - Минуты
hours - Часы
mday - День месяца
wday - День недели в числовом представлении (воскресенье — 0, суббота — 6)
mon - Месяц в числовом представлении
year - Год (4 цифры)
yday - День года в числовом представлении (например, 299)
weekday - День недели в текстовом представлении (например, «Friday»)
month - Месяц в текстовом представлении (например, «January»)
0 - Секунды от начала эпохи (результат, возвращаемый функцией time())

В качестве примера давайте воспользуемся функцией getdate() для вывода месяца, дня и года.


$a = getdate();
printf('%s %d, %d',$a['month'],$a['mday'],$a['year']);

Результат будет следующего вида:


March 11, 2016

Идем дальше.
Для того, чтобы получить значение местного времени, нужно передать функции getdate() временную метку.

Ниже пример вывода месяца, дня и года для временной метки 163727100:


$a = getdate(163727100);
printf('%s %d, %d',$a['month'],$a['mday'],$a['year']);

Будучи выполненным, код даст следующий вывод:


March 10, 1975

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

Ниже представлен массив, возвращаемый этой функцией:

"Позиция - Ключ - Значение"

0 - tm_sec - Секунды
1 - tm_min - Минуты
2 - tm_hour - Часы
3 - tm_mday - День месяца
4 - tm_mon - Месяц года (январь — 0)
5 - tm_year - Год (считая с 1990 года)
6 - tm_wday - День недели (воскресенье — 0)
7 - tm_yday - День года
8 - tm_isdst - Признак действия летнего времени

Давайте посмотрим, как можно использовать функцию localtime() для вывода текущей даты в формате "месяц/день/год":


$a = localtime();
$a[4] += 1;
$a[5] += 1900;
print "$a[4]/$a[3]/$a[5]";

На выходе получим:


2/4/2013

Обратите внимание, что мы увеличиваем на 1 месяц, потому что localtime() начинает отсчет месяцев с 0 (январь). Поэтому, если мы хотим, чтобы для января выводился номер 1, для февраля - номер 2, и т.д., нам нужно учесть данный момент.

По той же причине год мы увеличиваем на 1900, так как localtime() начинает отсчет лет с 0 (для года 1900).

Таким образом, функции getdate() и localtime() используют одну и ту же внутреннюю реализацию для генерирования компонентов даты и времени, однако отличаются форматом возвращаемых массивов и составом возвращаемых данных (например, функция localtime() включает признак действия летнего времени для заданного момента).

Также помните о том, что часовой пояс, используемый функциями getdate() и localtime() для вычислений, задается конфигурационной переменной date.timezone или через вызовов функции date_default_timezone_set().

Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!


Смотрите также:

PHP: Получение информации об объекте или классе, методах, свойствах и наследовании

PHP: Получение информации об объекте или классе, методах, свойствах и наследовании

CodeIgniter: жив или мертв?

CodeIgniter: жив или мертв?

Функции обратного вызова, анонимные функции и механизм замыканий

Функции обратного вызова, анонимные функции и механизм замыканий

Применение функции к каждому элементу массива

Применение функции к каждому элементу массива

Слияние массивов. Преобразование массива в строку

Слияние массивов. Преобразование массива в строку

Деструктор и копирование объектов с помощью метода __clone()

Деструктор и копирование объектов с помощью метода __clone()

Эволюция веб-разработчика или Почему фреймворк - это хорошо?

Эволюция веб-разработчика или Почему фреймворк - это хорошо?

Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.)

Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.)

PHP: Удаление элементов массива

PHP: Удаление элементов массива

Ключевое слово final (завершенные классы и методы в PHP)

Ключевое слово final (завершенные классы и методы в PHP)

50 классных сервисов, программ и сайтов для веб-разработчиков

50 классных сервисов, программ и сайтов для веб-разработчиков

Наверх