PHP: Функции даты и времени

Longhorn PHP 2023 — Call for Papers

  • checkdate — Проверяет корректность даты по григорианскому календарю
  • date_add — Псевдоним DateTime::add
  • date_create_from_format — Псевдоним DateTime::createFromFormat
  • date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat
  • date_create_immutable — Создаёт новый объект DateTimeImmutable
  • date_create — Создаёт новый объект DateTime
  • date_date_set — Псевдоним DateTime::setDate
  • date_default_timezone_get — Возвращает часовой пояс, используемый по умолчанию всеми функциями даты/времени в скрипте
  • date_default_timezone_set — Устанавливает часовой пояс по умолчанию для всех функций даты/времени в скрипте
  • date_diff — Псевдоним DateTime::diff
  • date_format — Псевдоним DateTime::format
  • date_get_last_errors — Псевдоним DateTimeImmutable::getLastErrors
  • date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString
  • date_interval_format — Псевдоним DateInterval::format
  • date_isodate_set — Псевдоним DateTime::setISODate
  • date_modify — Псевдоним DateTime::modify
  • date_offset_get — Псевдоним DateTime::getOffset
  • date_parse_from_format — Получение информации о заданной в определённом формате дате
  • date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате/времени
  • date_sub — Псевдоним DateTime::sub
  • date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
  • date_sunrise — Возвращает время рассвета для заданных дня и местоположения
  • date_sunset — Возвращает время захода солнца для заданных дня и местоположения
  • date_time_set — Псевдоним DateTime::setTime
  • date_timestamp_get — Псевдоним DateTime::getTimestamp
  • date_timestamp_set — Псевдоним DateTime::setTimestamp
  • date_timezone_get — Псевдоним DateTime::getTimezone
  • date_timezone_set — Псевдоним DateTime::setTimezone
  • date — Форматирует временную метку Unix
  • getdate — Возвращает информацию о дате/времени
  • gettimeofday — Возвращает текущее время
  • gmdate — Форматирует дату/время по Гринвичу
  • gmmktime — Возвращает локальную метку времени Unix для времени по Гринвичу
  • gmstrftime — Форматирует дату/время по Гринвичу с учётом текущей локали
  • idate — Преобразует локальное время/дату в целое число
  • localtime — Возвращает локальное время
  • microtime — Возвращает текущую метку времени Unix с микросекундами
  • mktime — Возвращает метку времени Unix для заданной даты
  • strftime — Форматирует текущую дату/время с учётом текущих настроек локали
  • strptime — Разбирает строку даты/времени, сгенерированную функцией strftime
  • strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix
  • time — Возвращает текущую метку системного времени Unix
  • timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations
  • timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers
  • timezone_location_get — Псевдоним DateTimeZone::getLocation
  • timezone_name_from_abbr — Возвращает название часового пояса, угадывая по аббревиатуре и смещению UTC
  • timezone_name_get — Псевдоним DateTimeZone::getName
  • timezone_offset_get — Псевдоним DateTimeZone::getOffset
  • timezone_open — Псевдоним DateTimeZone::__construct
  • timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
  • timezone_version_get — Получение номера версии базы данных часовых поясов

add a note

User Contributed Notes

There are no user contributed notes for this page.

Функции даты и времени | Руководство по PHP

Вернуться к: Дата/Время

  • checkdate — Проверяет корректность даты по григорианскому календарю
  • date_add — Псевдоним DateTime::add
  • date_create_from_format — Псевдоним DateTime::createFromFormat
  • date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat
  • date_create_immutable — Псевдоним DateTimeImmutable::__construct
  • date_create — Псевдоним DateTime::__construct
  • date_date_set — Псевдоним DateTime::setDate
  • date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
  • date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
  • date_diff — Псевдоним DateTime::diff
  • date_format — Псевдоним DateTime::format
  • date_get_last_errors — Псевдоним DateTime::getLastErrors
  • date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString
  • date_interval_format — Псевдоним DateInterval::format
  • date_isodate_set — Псевдоним DateTime::setISODate
  • date_modify — Псевдоним DateTime::modify
  • date_offset_get — Псевдоним DateTime::getOffset
  • date_parse_from_format — Получение информации о заданной в определенном формате дате
  • date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате
  • date_sub — Псевдоним DateTime::sub
  • date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
  • date_sunrise — Возвращает время рассвета для заданных дня и местоположения
  • date_sunset — Возвращает время захода солнца для заданных дня и местоположения
  • date_time_set — Псевдоним DateTime::setTime
  • date_timestamp_get — Псевдоним DateTime::getTimestamp
  • date_timestamp_set — Псевдоним DateTime::setTimestamp
  • date_timezone_get — Псевдоним DateTime::getTimezone
  • date_timezone_set — Псевдоним DateTime::setTimezone
  • date — Форматирует вывод системной даты/времени
  • getdate — Возвращает информацию о дате/времени
  • gettimeofday — Возвращает текущее время
  • gmdate — Форматирует дату/время по Гринвичу
  • gmmktime — Возвращает метку времени Unix для времени по Гринвичу
  • gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали
  • idate — Преобразует локальное время/дату в целое число
  • localtime — Возвращает локальное время
  • microtime — Возвращает текущую метку времени Unix с микросекундами
  • mktime — Возвращает метку времени Unix для заданной даты
  • strftime — Форматирует текущую дату/время с учетом текущих настроек локали
  • strptime — Разбирает строку даты/времени сгенерированную функцией strftime
  • strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix
  • time — Возвращает текущую метку времени Unix
  • timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations
  • timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers
  • timezone_location_get — Псевдоним DateTimeZone::getLocation
  • timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой
  • timezone_name_get — Псевдоним DateTimeZone::getName
  • timezone_offset_get — Псевдоним DateTimeZone::getOffset
  • timezone_open — Псевдоним DateTimeZone::__construct
  • timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
  • timezone_version_get — Получение номера версии базы данных временных зон

Вернуться к: Дата/Время

Как использовать функцию date() в PHP

Этот туториал покажет вам, как использовать функцию date() в ваших PHP-скриптах.

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

Вы можете получить дату и время из любой точки, указав метку времени Unix. Однако, если вы не укажете метку времени, функция date() будет использовать текущую дату и время, полученные из функции «time()».

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

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

Синтаксис функции date() в PHP

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

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

Давайте изучим этот синтаксис, углубившись в два параметра.

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

    Например, вы можете использовать функцию PHP date() для вывода только текущего года. Вы также можете отформатировать строку для печати дня, месяца, года и времени, если хотите.

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

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

    PHP-функция date() будет использовать текущее время сервера, если эта опция не включена или имеет значение null.

    Временная метка Unix представляет собой число, обычно представляемое в виде целого числа, например « 1667472356 ».

Форматирование метки времени для функции PHP date()

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

При записи формата даты или времени есть пять разных символов, которые вы захотите использовать для разделения каждого значения. Это хорошие значения, поскольку они гарантированно не будут заменены функцией date().

  • Дефис ( - )
  • точка ( . )
  • Косая черта ( / )
  • Точка с запятой ( : )
  • Космос ( )

Обратите внимание, что эта строка чувствительна к регистру, поскольку некоторые буквы будут иметь разную замену в зависимости от того, строчные они или прописные.

Символы замены даты

Для начала давайте сначала рассмотрим буквы, используемые для представления даты в PHP. Мы разделим их на три разные категории, охватывающие « день », « месяц » м и « год ».

День

  • d — это день месяца, выраженный двузначным числом с ведущими нулями (от 01 до 31 ).
  • j – День месяца без лидирующих нулей ( 9с 0022 1 по 31 ).
  • S – английский порядковый суффикс дня месяца. (, , или ).
  • D — день недели, выраженный в виде сокращенной строки ( Пн , Вт , Ср и т. д.).
  • l — Полное название дня недели ( понедельник , вторник , среда и т. д.).
  • w — числовое представление текущего дня недели ( 0 для воскресенья, 6 для понедельника).
  • z — Текущий день года (от 0 до 365 ).
  • W — Текущий номер недели года по стандарту ISO-8601 (недели начинаются в понедельник)

Месяц

  • m – Месяц выражается числом с ведущими нулями ( 01 до 12 ).
  • n – Месяц выражается числом без ведущих нулей (от 1 до 12 ).
  • M — месяц, выраженный строкой из трех букв ( янв , февраль , март , апрель и т. д.).
  • F — Заменено полным названием месяца ( январь , февраль , март , апрель и т. д.).
  • t — Количество дней в месяце в предоставленной метке времени ( 31 , 30 , 28 , 29 ).

Год

  • y – Выводит год в виде двузначного числа ( 98 , 18 , 20 , 9 0022 22 ).
  • Y — Эта буква заменяется годом, но в виде четырехзначного числа ( 1998 , 2018 , 2020 , 2022 ).
  • o – Год выводится по стандарту ISO-8601 ( 1998 , 2018 , 2020 , 2022 )
Пример использования функции date() для вывода дня

Давайте продемонстрируем это на практике, написав короткий PHP-скрипт, который использует функцию date() для вывода текущей даты.

В выводе этого фрагмента вы увидите, что буква « d » была заменена на день месяца, « m » была заменена на месяц, выраженный в виде числа, и, наконец, « Y » был изменен с годом в виде четырехзначного числа.

Мы будем использовать оператор PHP echo для вывода строки, возвращаемой функцией date().

Ниже вы можете увидеть пример того, что было выведено нашим вышеприведенным примером.

Символы замены времени

Следующая партия символов замены, которую мы рассмотрим, — это те, которые PHP-функция date() заменит текущим временем.

Часы

  • ч — Заменяется на час в 12-часовом формате с ведущими нулями ( 9с 0022 01 по 12 ).
  • г — Заменяется 12-часовым форматом без начальных нулей ( 1 на 12 ).
  • H — час, выраженный в 24-часовом формате с ведущими нулями (от 00 до 23 ).
  • G — Текущий час в 24-часовом формате без ведущих нулей (от 0 до 23 ).
  • a – нижний регистр перед меридианом или после меридиана в зависимости от времени ( или )
  • A — верхний регистр до меридиана или после меридиана в зависимости от времени ( AM или PM )

Минуты

  • i — заменены минутами ( 00 на 59 ).

Секунды

  • с — Переключение на текущую секунду из предоставленной метки времени ( 00 на 59 ).
  • u — эта буква заменяется микросекундами из метки времени (например, 22.082300 ).
  • U — Секунды с эпохи Unix (например, 1667536995 )

Часовой пояс

  • e — Эта буква заменена на часовой пояс ( Australia/Hobart , UTC , GMT ).
  • T — Аббревиатура часового пояса ( EST , MDT , GMT , AEST и т. д.).
  • O — Разница с GMT без двоеточия между часами и минутами (например, +1100 ).
  • P — Разница с GMT с двоеточием между часами и минутами (например, +11:00 ).
  • Z — смещение часового пояса выражается в секундах (от -43200 до 50400 ).
  • I — указана ли предоставленная метка времени для перехода на летнее время ( 1 для перехода на летнее время или 0 в противном случае).
Пример использования функции date() для вывода времени

Чтобы продемонстрировать это в действии, давайте напишем короткий PHP-скрипт, который использует функцию date() для вывода текущего времени в 24-часовом формате.

Поскольку мы хотим, чтобы время использовалось в 24-часовом формате, мы начинаем нашу строку формата с заглавной « H », за которой следует « i » для минуты и « s » для секунды.

Запустив приведенный выше код, вы получите результат, как показано ниже. Поскольку мы не указали метку времени, это будет текущее время вашей системы.

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

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

  • c — Дата и время в соответствии со стандартом ISO 8601 (например, 2004-02-12T15:19:21+00:00 )
  • r — Дата и время в соответствии со стандартом RFC 2822/RFC 5322 (например, , четверг, 21 декабря 2000 г., 16:01:07 +0200 )

Давайте воспользуемся буквой « r » в формате функций date(), чтобы продемонстрировать, как это работает в PHP для вывода даты и времени.

Если бы вы запустили приведенный выше пример, вы бы получили вывод даты и времени со следующим выводом.

Экранирующие символы в строке формата PHP date()

Чтобы использовать буквы в строке формата PHP date() без замены даты или времени, вам нужно экранировать ее.

Вы можете избежать зарезервированного символа, поместив перед ним обратную косую черту ( \ ). Например, чтобы использовать букву « a » в строке формата, вы должны использовать « \a ».

Чтобы показать пример того, как это работает, давайте выведем текущий день и время.

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

Получение текущей даты и времени в PHP

Одной из ключевых причин, по которой вы можете захотеть использовать функцию date() в своем PHP-скрипте, является получение текущей даты и времени.

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

1. Вам нужно будет решить, хотите ли вы использовать часовой пояс вашего сервера или другой. По умолчанию PHP получает серверное время.

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

В единственном параметре этой функции вы укажете часовой пояс для вашего региона. В нашем примере это будет « Australia/Hobart ».

Вы можете найти часовой пояс для этой функции, просмотрев официальное руководство по часовым поясам PHP.

2. Теперь с установленным часовым поясом вы можете использовать функцию PHP date() для вывода текущей даты и времени.

Здесь мы используем все символы, которые мы выучили ранее. Мы начинаем строку формата, указав дату, используя косую черту в качестве разделителя.

Буква « d » заменена на текущий день месяца. Затем мы используем букву « m », чтобы указать текущий месяц. Наконец, чтобы закончить дату, мы используем заглавную букву « Y », чтобы напечатать год в виде четырехзначного числа.

Затем мы используем букву « ч », чтобы указать текущий час, « i », чтобы указать минуты, и, наконец, « s », чтобы указать текущую секунду.

Мы заканчиваем строку формата, используя букву « a », чтобы напечатать « am » или « pm ». Если вы предпочитаете использовать 24-часовой формат времени, удалите « a » из метки времени и измените букву « h » на заглавную « H ».

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

4. Если вы запустите этот код, вы увидите, что сценарий выводит текущую дату и время.

Заключение

На этом этапе обучения вы должны знать, как использовать функцию date() в PHP.

Эта функция — лучший способ получить дату или время в ваших сценариях PHP.

Пожалуйста, прокомментируйте ниже, если у вас есть вопросы об использовании PHP-функции date().

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

PHP: Доминировать даты с интервалами и точками | Итало Баеза Кабрера

Время не должно быть грехом, чтобы справиться с ним 9 мг 2021

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

Ваше приложение никогда не может использовать ничего, кроме дат начала и окончания, и может проверять следующий месяц с заданного момента. Хотя это нормально, в эпоху подписки некоторые проекты могут быть вынуждены обрабатывать время сложным образом. Например, одно приложение может быть готово самостоятельно обрабатывать выставление счетов, а не отдавать комиссию за платежи таким шлюзам, как Stripe, Braintree и многим другим.

К счастью для нас, в PHP есть два очень полезных инструмента для расчета времени вперед и назад: интервалы и периоды.

В PHP существует объект DateInterval для описания продолжительности времени. Например, 6 дней или 45 минут. Нет ни даты начала, ни даты окончания, только продолжительность.

Это очень полезно, когда вам нужно описать продолжительность времени, не принимая во внимание, когда оно должно начаться или закончиться. Если вам нужно относительное время для длительности, вы можете добавить или вычесть DateInterval к любому DateTimeInterface .

Аккуратная вещь о DateInterval заключается в том, что его можно очень просто представить в виде строки: годы, месяцы, дни, часы, минуты и секунды. К сожалению, нет поддержки миллисекундной точности, поэтому вам придется обрабатывать это отдельно, если это ваш (редкий) случай.

Объект DateInterval можно использовать совместно с помощью крошечной строки ISO 8601, поэтому мы можем сохранить DateInterval в базе данных. Нет необходимости сериализовать сам экземпляр объекта до десятков символов, что делает его менее переносимым между системами, считывающими один источник правды.

Одна из проблем DateInterval заключается в том, что он не может быть создан как отрицательный (обратный во времени). Вы должны вручную установить для свойства инвертировать значение 1 . Это больше похоже на патч, чтобы избежать нежелательного поведения из сохраненного отрицательного интервала.

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

Теперь, когда мы поняли, как DateInterval может нам помочь, давайте перейдем к подпискам. Как мы можем периодически выставлять счет пользователю каждые 45 дней? Вот где DatePeriod может помочь.

Как следует из названия, DatePeriod описывает несколько моментов (периодов) во времени от начальной точки заданное количество раз.

Для того, чтобы DatePeriod работал, вы должны указать как минимум 3 вещи: начальную дату, интервал и (предпочтительно) количество вхождений. Вы можете исключить начальную дату из списка повторений позже.

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

DatePeriod предоставляет некоторые методы и свойства, но действительно полезным инструментом являются циклы. Поскольку DatePeriod реализует интерфейс Traversable, вы можете зацикливаться на каждом повторении, используя foreach . Не нужно вручную перемещать стрелку для каждого периода или делать странные вычисления.

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

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

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

С помощью очень простого кода мы можем просто получить следующее повторение выставления счетов.

Конец сложный

DatePeriod ОЧЕНЬ полезен при работе с периодическими моментами. Вы даже можете исключить начальный период, используя константу EXCLUDE_START_DATE из списка повторений. Однако к финалу следует относиться с осторожностью.

Первая проблема проста: a DatePeriod должен иметь окончание , являющееся числом повторений или простой датой. Другими словами, «бесконечных периодов» не существует, поэтому, если вы собираетесь взорвать крышу, обновите сам период или упростите свое решение, используя DateInterval .

Второй немного сложнее понять.