Форматирование текущей даты и времени в php

Время выполнения скрипта

Способ #1

Функция с переданным значением возвращает число секунд, прошедших с полуночи , причём это значение подсчитано до сотых долей секунды. Затем идёт сам скрипт (исполняемый код), который мы и проверяем. В последней строкой будет разница между текущим временем (после выполнения скрипта) и тем, что мы зафиксировали при старте скрипта. Разница времени после выполнения скрипта и времени до начала его работы, и есть время выполнения скрипта.

$start = microtime(true);

// исполняемый код ...

echo '<br>===============================================================';
echo 'Время выполнения скрипта: ' . (microtime(true) - $start) . ' sec.';

Результат:

Время выполнения скрипта: 0.16499996185303 sec.

Способ #2

Можно вместо брать значение из переменной , которая содержит время запроса к серверу. Вычисление времени выполнения происходит за исполняемым кодом.

// исполняемый код ...

$time = microtime(true) - $_SERVER;
echo $time . ' sec.';

Если на сервере установлен :

// исполняемый код ...

echo xdebug_time_index() . ' sec.';

Способ #4

Можно подсчитать среднее значение выполнения скрипта и записать результат в логи:

$start = microtime(true);
 
// исполняемый код ...
 
$time = round(microtime(true) - $start, 3);
 
$f = fopen('time.log', 'a');
fwrite($f, $time . PHP_EOL);
fclose($f);
 
$log = file('time.log');
$result = round(array_sum($log) / count($log), 3); 
echo $result . ' sec.';

Получение даты и времени в PHP. Функция date

В этой статье будет рассмотрено, как работать с датой и временем в языке программирования PHP. Также читатель узнает о таких функциях для работы со временем, как date() , time() и mktime() .

Вместо предисловия

Среди задач, с которыми регулярно сталкивается программист, очень часто встречаются разнообразные манипуляции с датами (dates) и временем (time). Никто не будет спорить с тем, что эти значения (символы, параметры) чрезвычайно важны. И база данных, и любая цифровая автоматизированная система не способны корректно работать, если нет точного времени, а также если информация о времени выполнения того либо иного процесса не сохраняется. Вот лишь некоторые примеры использования временных параметров: — элементарное добавление даты в запись БД; — отображение времени; — вывод дат в различном формате; — проверка текущего времени на соответствие заданному таймеру; — определение срока между 2-мя датами и так далее.

Чтобы работать со временем было удобно, у каждого языка программирования имеются специальные типы данных, позволяющие хранить соответствующие значения. Обычно речь идёт о числовом значении, как целом, так и с плавающей точкой.

В языке программирования PHP работу со временем символизирует UNIX TIMESTAMP. То есть время тут хранится в виде целого числа, а его исчисление начинается с полуночи 1.01.1970 — с так называемой нулевой даты, принятой в Unix и прочих POSIX-совместимых ОС (ещё эту дату называют «Unix-время»). В результате возвращается число секунд, которое прошло с начала Эпохи Unix.

Прежде чем приступить к дальнейшему изложению материала, следует определить текущее значение времени в формате UNIX TIMESTAMP. Делается это с помощью простейшего кода и функции time:

На момент написания материала было 14 октября 2020 года, поэтому в терминале отобразилось следующее:

Вы можете проверить вышеописанную команду и получить в PHP текущую дату и время самостоятельно, даже если не являетесь PHP-разработчиком — просто поместите код в любой онлайн-компилятор, вот один из многих. Так же рекомендуется делать и с остальным кодом — это поможет вам лучше понять работу описываемых в статье команд.

Но вернёмся к основной теме разговора. Благодаря коротенькому коду выше, мы получили от сервера текущее время — 1602666005 (у вас значение будет другим, ведь время не стоит на месте))).

Можно согласиться с тем, что для человека такой формат не очень удобен. Но на деле, чем проще представление данных, тем быстрее осуществляется обработка этих данных компьютерным устройством. Да и хранить такие значение в БД в плане ресурсов экономнее, чем при использовании специальных форматов. В итоге PHP работает со значениями времени одинаково на разных платформах (и Unix, и Windows), в результате чего обеспечивается универсальность использования кода.

Если же говорить об удобстве пользователя, то у разработчиков есть масса средств это удобство обеспечить.

Функция date

Эта функция возвратит пользователю строку в форме даты/времени, сделав это в определённом формате. Формат этот определяет сам пользователь.

Синтаксис функции выглядит так:

Видно, что формат указывается в качестве аргумента. Этим аргументом могут выступать самые разные символы, коих существует целая таблица:

Теперь давайте попробуем, как эта таблица работает на практике. Выведем текущий день недели:

У меня получился Wednesday, а вот что отобразится в консоли у вас, зависит от дня недели, в который вы напишете эту команду.

Теперь выведем дату в виде YYYY-ММ-DD:

А потом и дату, и время:

Описание time и mktime

Уже упоминалось, что time возвратит количество секунд с начала т. н. эпохи Unix и вплоть до текущего времени. Однако на практике эта функция чаще используется не в «чистом виде», а вместе с иными функциями.

Для начала займёмся её использованием вместе с меткой текущей даты:

А теперь используем её же, но уже совместно с date() . Давайте выведем текущую дату двумя способами, а потом выведем дату, которая наступит через неделю:

Теперь стоит поговорить о том, каким образом с функцией time используется mktime. Именно mktime возвращает метки времени Unix для даты, которую укажет пользователь.

Аргументы могут быть разные, а также опущены справа налево:

Лучше всего рассмотреть вышеописанное на примере. Давайте выведем в терминал: — текущую полную дату и время (часы, минуты, секунды); — время и дату завтрашнего дня; — время и дату следующего месяца того же дня; — ту же дату, но уже прошедшего года.

На этом всё

Если интересуют более сложные и продвинутые знания по PHP, обратите внимание на соответствующий курс в OTUS!

Добавление, вычитание и сравнение дат

Можно добавлять и вычитать определенные периоды времени к и от даты. Это можно сделать с помощью функций и . Вы также можете использовать функцию , чтобы вычесть две даты и вывести разницу между ними по годам, месяцам и дням или что-то еще.

Как правило, проще провести такую арифметику, связанную с датой и временем, в объектно-ориентированном стиле с классом , а не делать это процедурно. Мы попробуем оба эти стили, и вы сможете выбрать то, что вам больше нравится.

При использовании объект , на который вызывается метод , вычитается из объекта , который передается методу . Когда вы пишете код процедурного стиля, первый параметр даты вычитается из второго параметра даты.

И функция, и метод возвращают объект , представляющий разницу между двумя датами. Этот интервал можно отформатировать, чтобы дать конкретный результат, используя все символы, перечисленные в документации метода .

Различие между объектно-ориентированным стилем и процедурным становится более очевидным при вычитании или добавлении временного интервала.

Вы можете создать экземпляр нового объекта с помощью конструктора . Аналогично, вы можете создать экземпляр объекта с помощью конструктора . Он принимает строку в качестве ее параметра. Интервальная строка начинается с , что означает период. После этого вы можете указать каждый период с использованием целочисленного значения и символа, присвоенного определенному периоду. Для получения дополнительной информации вы должны проверить документацию .

Вот пример, который иллюстрирует, как легко добавлять или вычитать даты и время в PHP.

Вы также можете сравнить даты на PHP с помощью операторов сравнения. Это может пригодиться время от времени. Давайте создадим счетчик рождественских дней, используя операторы сравнения и другие методы .

Мы начали с создания двух объектов для хранения текущего времени и даты Рождества этого года. После этого мы запускаем цикл , чтобы добавить 1 год к рождественской дате 2018 года, пока настоящая дата не станет меньше, чем дата Рождества. Это будет полезно, когда код будет запущен 18 января 2024 года. Цикл while увеличит дату Рождества, если он меньше текущей даты во время запуска этого скрипта.

Наш рождественский счетчик теперь будет работать в течение многих десятилетий без проблем.

PHP 5 Date/Time функции

Функция Описание
checkdate() Проверяет григорианскую дату
date_add() Добавляет дни, месяцы, годы, часы, минуты и секунды к дате
date_create_from_format() Возвращает новый объект DateTime, отформатированный в соответствии с указанным форматом
date_create() Возвращает новый объект DateTime
date_date_set() Устанавливает новую дату
date_default_timezone_get() Возвращает индексный часовой пояс, используемый всеми функциями даты и времени
date_default_timezone_set() Задает часовой пояс индекса, используемый всеми функциями даты и времени
date_diff() Возвращает разницу между двумя датами
date_format() Возвращает дату, отформатированную в соответствии с заданным форматом
date_get_last_errors() Возвращает предупреждения/ошибки, найденные в строке даты
date_interval_create_from_date_string() Устанавливает для dateinterval из относительной части строки
date_interval_format() Форматирует интервал
date_isodate_set() Устанавливает дату ISO
date_modify() Изменяет метку времени
date_offset_get() Возвращает смещение часового пояса
date_parse_from_format() Возвращает ассоциативный массив с подробной информацией о заданной дате в соответствии с заданным форматом
date_parse() Возвращает ассоциативный массив с подробной информацией о заданной дате
date_sub() Вычитает дни, месяцы, годы, часы, минуты и секунды из даты
date_sun_info() Возвращает массив, содержащий информацию о начале/конце заката/восхода солнца и сумерек для указанного дня и местоположения
date_sunrise() Возвращает время восхода солнца для указанного дня и местоположения
date_sunset() Возвращает время захода солнца для указанного дня и местоположения
date_time_set() Устанавливат время
date_timestamp_get() Возвращает метку времени Unix
date_timestamp_set() Устанавливает дату и время на основе временной метки Unix
date_timezone_get() Возвращает часовой пояс данного объекта DateTime
date_timezone_set() Задает часовой пояс для объекта DateTime
date() Форматирует локальную дату и время
getdate() Возвращает информацию о дате/времени метки времени или текущей локальной дате/времени
gettimeofday() Возвращает текущее время
gmdate() Форматирует дату и время GMT/UTC
gmmktime() Возвращает метку времени Unix для даты GMT
gmstrftime() Форматирует дату и время GMT/UTC в соответствии с настройками локали
idate() Форматирует местное время/дату как целое число
localtime() Возвращает местное время
microtime() Возвращает текущую метку времени Unix в микросекундах
mktime() Возвращает метку времени Unix для даты
strftime() Форматирует местное время и/или дату в соответствии с настройками локали
strptime() Анализирует время/дату, сгенерированные с помощью strftime()
strtotime() Разбирает английское текстовое представление даты в метку времени Unix
time() Возвращает текущее время в виде временной метки Unix
timezone_abbreviations_list() Возвращает ассоциативный массив, содержащий летнее время, смещение и имя часового пояса
timezone_identifiers_list() Возвращает индексированный массив со всеми идентификаторами часовых поясов
timezone_location_get() Возвращает информацию о местоположении для указанного часового пояса
timezone_name_from_ abbr() Возвращает название часового пояса из аббревиатуры
timezone_name_get() Возвращает название часового пояса
timezone_offset_get() Возвращает смещение часового пояса от GMT
timezone_open() Создает новый объект DateTimeZone
timezone_transitions_get() Возвращает все переходы для часового пояса
timezone_version_get() Возвращает версию базы данных часового пояса

Преобразование штампа времени с помощью getdate()

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

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

# Значение Описание Пример
1 seconds Через несколько минут после минут (0-59) 20
2 minutes Минуты минувшего часа (0 — 59) 29
3 hours Часы дня (0 — 23) 22
4 mday День месяца (1 — 31) 11
5 wday День недели (0 — 6) 4
6 mon Месяц года (1 — 12) 7
7 year Год (4 цифры) 1997
8 yday День года (0 — 365) 19
9 weekday День недели Четверг
10 month Месяц в году январь
11 Отметка 948370048

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

Попробуйте следующий пример

php

   $date_array = getdate();
 

   foreach ($date_array as $key = $val ){
      print "$key = $val br";
   }

   $formated_date  = "Today's date: ";
   $formated_date .= $date_array ;
   $formated_date .= $date_array ;
   $formated_date .= $date_array;
 
   print $formated_date;


Это приведет к следующему результату —

PHP занятие 6. Функции даты и времени

Функции даты и времени в PHP позволяют получить дату и время с сервера, с которого запускается сценарий.

Рассмотрим основные функции даты и функции времени php.

Функция date в php

Данная функция возвращает строку в виде даты и/или времени в указанном формате ( $format ). Шаблон формата указывается в качестве аргумента функции.

Рассмотрим варианты символов, которые распознаются в параметре формат:

Символ в параметре format Описание Пример возвращаемого значения
Функция даты php
День
d День месяца: две цифры с первым нулём от 01 до 31
D День недели в словесном представлении, 3 символа от Mon до Sun
j День месяца без первого нуля от 1 до 31
l (строчная &#171;L&#187;) Полное словесное название дня недели от Sunday до Saturday
N Порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье)
S Сокращение порядкового числительного дня месяца: два символа st, nd, rd или th. Применяется вместе с j
w Порядковый номер дня недели от (воскресенье) до 6 (суббота)
z Порядковый номер дня в году (начиная с 0) От до 365
Неделя
W Порядковый номер недели года: недели начинаются с понедельника 33 (33-я неделя года)
Месяц
F Полное словесное название месяца, например May от January до December
m Порядковый номер месяца с первым нулём от 01 до 12
M Сокращенное словесное название месяца: три символа от Jan до Dec
n Порядковый номер месяца без первого нуля от 1 до 12
t Количество дней в указанном месяце от 28 до 31
Год
L Указывает на високосный год 1, если год високосный, иначе .
o Номер года 1999 или 2003
Y Порядковый номер года: четыре цифры 1998, 2008
y Номер года: две цифры 98, 08
Функции времени php
a Ante meridiem (с англ. &#171;до полудня&#187;) или Post meridiem (с англ. &#171;после полудня&#187;) am или pm
A Ante meridiem или Post meridiem заглавными буквами AM или PM
B Время в формате Интернет-времени от 000 до 999
g Часы в 12-часовом формате без первого нуля от 1 до 12
G Часы в 24-часовом формате без первого нуля от до 23
h Часы в 12-часовом формате с первым нулём от 01 до 12
H Часы в 24-часовом формате с первым нулём от 00 до 23
i Минуты с первым нулём от 00 до 59
s Секунды с первым нулём от 00 до 59
u Микросекунды Например, 654321
v Миллисекунды Например, 654
Временная зона
e Код шкалы временной зоны Например, UTC, GMT
I (заглавная i) Признак летнего времени 1, если дата соответствует летнему времени, в противном случае.
Полная дата/время
c Дата в формате, указанном в примере 2006-05-12T15:19:21+00:00
r Дата в формате, указанном в примере Например: Thu, 23 Dec 2010 18:05:07 +0200
U Количество секунд, прошедших с начала Эпохи Unix (с 1 января 1970 00:00:00 GMT) &#8212;

Пример:

// выведет день недели в формате: Saturday echo date(«l»); // выведет дату в формате 2017-01-28 echo date(‘Y-m-d’); // выведет дату и время в формате: Saturday 8th of August 2016 06:13:44 PM echo date(‘l jS \of F Y h:i:s A’);

Функция time и mktime в php

Функция не предназначена для вывода результата в виде даты или времени, а используется совместно с другими функциями. Пример использования функции в &#171;чистом виде&#187;:

$now = time(); // метка текущей даты echo $now; // выведет что-то типа 1485618140 $nextWeek = time() + (7 * 24 * 60 * 60); // 7 дней; 24 часа; 60 минут; 60 секунд echo $nextWeek; // выведет что-то типа 1486222940

Функция используется совместно с функцией date():

Выполнение:

$now = time(); $nextWeek = time() + (7 * 24 * 60 * 60); // Сейчас: 2017-01-28 echo ‘Сейчас: ‘. date(‘Y-m-d’) .»\n»; // Сейчас: 2017-01-28 echo ‘Сейчас: ‘. date(‘Y-m-d’, $now) .»\n»; // Следующая неделя: 2017-02-04 echo ‘Следующая неделя: ‘. date(‘Y-m-d’, $nextWeek) .»\n»;

Функция используется совместно с функцией mktime:

Аргументы:

Аргументы могут быть опущены в порядке справа налево.

Рис. 6.1. Использование функции mktime и date

Выполнение:

//Вывод текущей даты и времени echo date(«r»); //Sat, 28 Jan 2017 19:58:45 +0400 // создаем метку для «завтра» $tomorrow = mktime(0,0,0,date(«m»),date(«d»)+1, date(«Y»)); echo date(«r», $tomorrow); // Sun, 29 Jan 2017 00:00:00 +0400 // создаем метку для «следующий месяц» $nextmonth = mktime(0,0,0,date(«m»)+1,date(«d»), date(«Y»)); echo date(«r», $nextmonth ); //Tue, 28 Feb 2017 00:00:00 +0400 // создаем метку для «прошлый год» $lastyear= mktime(0,0,0,date(«m»)+1,date(«d»), date(«Y»)-1); echo date(«r», $lastyear); //Sun, 28 Feb 2016 00:00:00 +0400

  1. Создайте строковую переменную now
  2. Создайте строковую переменную birthday
  3. Присвойте переменной now значение метки времени актуальной даты (сегодня)
  4. Присвойте переменной birthday значение метки времени Вашего дня рождения
  1. Выведите фразу &#171;До моего дня рождения осталось &#171;
  2. Выведите количество секунд, оставшееся до Вашего дня рождения
  3. Закончите фразу &#187; секунд&#187;

Дополните код:

Функция PHP mktime()

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

Но если вам нужно получить метку времени в прошлом или будущем, то сделать это можно с помощью функции . Вам нужно указать нужную дату, и она возвращается с меткой времени Unix. Метка времени Unix содержит количество секунд между эпохой Unix (1 января 1970 г., 00:00:00 GMT) и указанным временем.

Синтаксис данной функции следующий:

mktime(hour, minute, second, month, day, year)

Здесь используются следующие данные:

Количество часов, прошедших с начала дня, указанного параметрами month, day и year.
Количество минут, прошедших от начала часа, указанного параметром hour.
Количество секунд, прошедших от начала минуты, указанной параметром minute.
Количество месяцев, прошедших с конца предыдущего года.
Количество дней, прошедших с конца предыдущего месяца.
Номер года, может быть указан двумя или четырьмя цифрами.

Аргументы могут быть опущены в порядке справа налево. В этом случае их значения по умолчанию равны соответствующим компонентам локальной даты/времени.

Функцию удобно использовать для выполнения арифметических операций с датами, так как она вычисляет верные значения при некорректных аргументах. Например, в следующем примере каждая строка выведет «Jan-01-1921»:

Попробуй сам

Если вы хотите получить дату завтрашнего дня, вы можете использовать следующий код:

Попробуй сам

В приведенном примере мы использовали функцию и добавили 1 день к параметру дня, чтобы получить дату завтрашнего дня.

Функция переводит заданную дату в формат . Формат timestamp — это количество секунд, прошедшее с 1-го января 1970 года по заданный момент времени.

В следующем примере получим разницу в секундах между 1970 годом и 31.12.2025, 12:59:59:

PHP5 Дата и время

Функция PHP date(), используется для форматирования даты и/или времени.

PHP Функция date()

Функция date() , форматирует метку времени для более читаемых даты и времени.

Параметры Описание
Формат Обязательно. Задает формат метки времени
Метка времени Необязательно. Задает метку времени. По умолчанию — текущая дата и время

Временная метка — это последовательность символов, обозначающие дату и/или время, когда произошло определенное событие.

PHP Получить простую дату

Необходимый параметр формат функции date() определяет, как форматировать дату (или время).

Вот некоторые символы, которые обычно используются для дат:

  • d — Представляет день месяца (01 до 31)
  • m — Представляет месяц (01 до 12)
  • Y — Представляет год (из четырех цифрах)
  • l — Представляет день недели

Другие персонажи, например «/» , «.» , или «-» также могут быть вставлены между символами для добавления дополнительного форматирования.

Пример ниже, форматирует сегодняшнюю дату тремя различными способами:

Пример

Функция date() , автоматического обновления года авторского права вебсайта:

Пример

PHP Получить простое время

Вот некоторые символы, которые обычно используются для времени:

  • h — 12-часовой формат с ведущими нулями (01 до 12)
  • i — Минуты с ведущими нулями (00 до 59)
  • s — Секунды с ведущими нулями (00 до 59)
  • a — В нижнем регистре до полудня и после полудня (am и pm)

В примере ниже выводится текущее время в указанном формате:

Пример

Обратите внимание, что PHP функция date() вернет текущую дату/время сервера!

PHP Получить свой часовой пояс

Если время, которое вы получили от кода не является правильным время, это, вероятно, потому, что ваш сервер находится в другой стране или настроить для другой часовой пояс.

Так, если вам нужно чтобы время было правильным согласно специфическому местоположению, можно использовать установку часового пояса.

В примере ниже задается часовой пояс «Россия/Пермь», затем, выводит текущее время в указанном формате:

Пример

PHP Создать метку времени

Необязательный параметр timestamp в функции date() задает метку времени. Если Вы не укажите метку времени, будет использоваться текущая дата и время (как показано в примеры выше).

Функция mktime() возвращает метку времени Unix для даты. Временная метка Unix содержит количество секунд между эпохой Unix (1 января 1970 00:00:00 GMT) и время уточняется.

Пример ниже создает дату и время из нескольких параметров в функции mktime() :

Пример

PHP Создать дату из строки

Функция strtotime() , используется для преобразования читаемой строки в времени Unix.

Пример

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

Пример

Однако, функция strtotime() не идеалена, поэтому не забудьте проверить строки, которые вы туда вставили.

Еще примеры дат

В приведенном ниже примере, выводятся даты для следующих шести суббот:

Пример

<?php$startdate = strtotime(«Saturday»);$enddate = strtotime(«+6 weeks», $startdate);

while ($startdate < $enddate) <echo date(«M d», $startdate) . «<br>»; $startdate = strtotime(«+1 week», $startdate);>?>

Пример ниже выводит количество дней до 4 июля:

Пример

Справочник содержит краткое описание и примеры использования для каждого функция!

Получение даты и времени в строчном формате

— одна из наиболее часто используемых функций даты и времени, доступных в PHP. Он принимает желаемый формат вывода для даты в качестве первого параметра и целое число как значение временной метки, которое необходимо преобразовать в заданный формат даты. Второй параметр является необязательным, и его отсутствие дает вывод текущей даты и времени в строчном формате на основе значения .

Параметр принимает ряд символов в качестве допустимых значений. Некоторые из этих символов имеют прямые значения: дает вам полное числовое значение года с 4 цифрами (2018), а дает только две последние цифры текущего года (18). Аналогично,  даст вам час в 24-часовом формате с ведущими нулями, а  даст вам час в 12-часовом формате с ведущими нулями.

Вот некоторые из наиболее распространенных символов формата даты и их значений.

Символ Значение Пример
день месяца с ведущими нулями 03 или 17
день месяца без ведущих нулей 3 или 17
день недели в виде трехбуквенной аббревиатуры Mon
полный день недели Monday
месяц как число с ведущими нулями 09 или 12
месяц как число без ведущих нулей 9 или 12
месяц как трехбуквенная аббревиатура Sep
полное название месяца September
двухзначный год 18
полное число года 2018

Существует множество других специальных символов для указания вывода для функции . Лучше всего проконсультироваться с таблицей символов формата в документации по функции для получения дополнительной информации о специальных случаях.

Давайте рассмотрим некоторые практические примеры функции . Мы можем использовать ее для получения текущего года, текущего месяца, текущего часа и т. д., Или мы можем использовать ее для получения полной строки даты.

Вы также можете использовать функцию для вывода времени. Вот некоторые из наиболее часто используемых символов формата времени:

Символ Значение Пример
часы в 12-часовом формате без начальных нулей 1 или 12
часы в 12-часовом формате с ведущими нулями 01 или 12
часы в 24-часовом формате без начальных нулей 1 или 13
часы в 24-часовом формате с ведущими нулями 01 или 13
am/pm в нижнем регистре am
am/pm в верхнем регистре AM
минуты с ведущими нулями 09 или 15
секунды с начальными нулями 05 или 30

И вот несколько примеров вывода форматированных строк времени.

Также важно избегать этих специальных символов, если вы хотите использовать их внутри своей строки даты

Преобразование формата даты и времени в PHP

Простейший механизм, позволяющий преобразовать числовое значение даты на более понятные значения, предоставляется функцией:

array getdate()

Она возвращает ассоциативный массив, содержащий информацию о дате. Если параметр timestamp не указан, будут возвращены сведения о текущем времени. Этот массив содержит следующие значения:

seconds секунды (0-59)
minutes минуты (0-59)
hours часы (0-23)
mday день месяца (1-31)
wday день недели (0-6), начиная с воскресенья
mon месяц (1-12)
year год
yday день года (0-365)
weekday название дня недели (например, Monday)
month название месяца (например, January)
количество секунд, прошедших с начала Эпохи Unix

Полученный массив, позволяет вывести значения нужном виде:

$date = 1418372345; // исходное дата и время 12.12.2014 11:19:05
$date_mas = getdate($date);
echo $date_mas . ' . ' . $date_mas . ' . ' . $date_mas; // 12.12.2014

Так же для преобразования формата даты и времени можно воспользоваться функцией:

string date(string $template )

Она предназначена для получения текущей даты unix timestamp в нужном формате. Строковый параметр $template определяет формат вывода. Параметром $unix_timestamp можно задать, с каким значением времени производится работа. Он необязательный, поэтому, если его не указать, будет использоваться текущая дата и время.

Формат задается следующими значениями:

a «до» и «после» полудня: «am» или «pm»
A «до» и «после» полудня заглавными буквами: «AM» или «PM»
d день месяца 2 цифрами (если меньше 10, на первом месте ноль) (от 01 до 31)
D день недели 3 буквами. Например, «Mon» (понедельник)
j день месяца, 1-2 цифры без начальных нулей (от 1 до 31)
F название месяца. Например, «January»
h час, 12-часовой формат (от 01 до 12)
H час, 24-часовой формат (от 00 до 23)
g час, 12-часовой формат без нулей (от 1 до 12)
G час, 24-часовой формат без нулей (от 0 до 23)
i минуты (от 00 до 59)
I (заглавная i) 1, если действует переход на летнее время, иначе 0
L 1, если год високосный, или 0 если не високосный
B время в формате Интернет-времени (альтернативной системы отсчета времени суток) (от 000 до 999)
T временная зона компьютера. Например, MDT
l (строчная L) день недели. Например, «Monday»
m месяц, две цифры с нулями (от 01 до 12)
n месяц, одна-две цифры без нулей (от 1 до 12)
M сокращенное наименование месяца. Например, «Jan»
t число дней в указанном месяце (от 28 до 31)
s секунды (от 0 до 59)
S англоязычный порядковый суффикс числа из двух букв («st», «nd», «rd» или «th»)
U целое число секунд, прошедших с момента начала эпохи UNIX
y год, цифровой, 2 цифры (14)
Y год, цифровой, 4 цифры (2014)
z порядковое число дня в году (от 0 до 365)
Z смешение временной зоны в секундах (от -43200 до 43200)
N порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье) в соответствии со стандартом ISO-8601, (добавлен в версии PHP 5.1.0)
w порядковый номер дня недели от 0 (воскресенье) до 6 (суббота)
W порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника (добавлено в версии PHP 4.1.0)
o номер года в соответствии со стандартом ISO-8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлен в версии PHP 5.1.0)
e код шкалы временной зоны. Например: UTC, GMT, Atlantic/Azores (добавлен в версии PHP 5.1.0)
O разница с временем по Гринвичу, в часах. Например: +0200
P разница с временем по Гринвичу с двоеточием между часами и минутами. Например: +02:00 (добавлено в версии PHP 5.1.3)
c дата в формате стандарта ISO 8601. Например, 2014-12-12T15:19:21+00:00 (добавлено в PHP 5)
r дата в формате » RFC 2822. Например: Thu, 21 Dec 2000 16:01:07 +0200
U количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT)

Как видно из списка, с помощью этой функции можно получить очень много полезных данных о дате. Например:

$date = 1418372345; // исходное дата и время 12.12.2014 11:19:05

echo date('d.m.Y', $date); // 12.12.2014 (дата)
echo date('H:i:s', $date); // 11:19:05 (время)
echo date('H:i', $date); // 11:19 (время)
echo date('t', $date); // 31 (число дней в месяце)
echo date('z', $date); // 345 (порядковый номер дня в году)
echo date('l dS \of F Y h:i:s A', $date); // Friday 12th of December 2014 11:19:05 AM

Другие символы, входящие в шаблон, будут выведены в строке как есть. Если же потребуется ввести символ, который используется в функции как код формата, перед ними вставляется символ «\». Для значения «\n» (символ перехода на новую строку), следует указать «\\n». Таким образом, можно делать вывод целого сообщения, содержащего сведения о дате и времени:

echo date('Сегодня z-й день Y-го года', $date); // Сегодня 345-й день 2014-го года
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: