date and time PHP functions

Date and Time

  • date
  • idate
  • jdtounix
  • jewishtojd
  • mktime
  • strftime
  • strptime
  • strtotime
  • unixtojd

Наиболее используемое

  • unserialize
  • preg_match
  • json_decode
  • strlen
  • preg_replace
  • dns_get_record
  • json_encode
  • date
  • preg_match_all
  • serialize

deenesfritjaptrutrzh

Execute and test PHP functions for date and time manipulation.

date

Возвращает строку, отформатированную в соответствии с указанным шаблоном $format. Используется метка времени, заданная аргументом $timestamp, или текущее системное время, если timestamp не задан. Таким образом, $timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().

idate

Преобразует текущую дату и время в целое число в соответствии со строкой форматирования $format. Если аргумент $timestamp задан, расчет будет произведен для этой временной метки, если нет — будет использовано локальное время. Другими словами, $timestamp — необязательный аргумент и по умолчанию равен значению time().

В отличие от функции date(), idate() принимает только один символ в аргументе $format.

jdtounix

Эта функция вернет метку времени Unix соответствующую номеру дня в Юлианском летоисчислении, заданному в $jday либо FALSE, если $jday лежит за пределами эпохи Unix (годы по Григорианскому календарю между 1970 и 2037 или 2440588

jewishtojd

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

mktime

Функция возвращает метку времени Unix, соответствующую дате и времени, заданным аргументами. Метка времени — это целое число, равное разнице в секундах между заданной датой/временем и началом Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT).

strftime

Форматирует дату/время с учетом текущих настроек локали. Названия месяцев, дней недели и других языко-зависимых строк будут взяты в соответствии с текущими настройками локали, установленной с помощью функции setlocale().

strptime

strptime() возвращает массив с данными разбора строки $date, либо FALSE в случае ошибки.

strtotime

Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени Unix (количество секунд, прошедших с 1 января 1970 г. 00:00:00 UTC) относительно метки времени, переданной в $now, или текущего времени, если аргумент $now опущен.

unixtojd

Возвращает Юлианский день для заданной метки времени Unix $timestamp (количество секунд с 1. 1.1970) либо для текущего времени, если аргумент $timestamp не задан.

waDatetime — Документация Webasyst

  • date

    Возвращает строковое представление даты в соответствии с указанным форматом.

  • format

    Возвращает удобное для чтения строковое представление даты.

  • getDefaultTimeZone

    Возвращает используемую по умолчанию временную зону с помощью PHP-функции date_default_timezone_get.

  • getFormat

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

  • getFormatJS

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

  • getTimeZones

    Возвращает список доступных временных зон с локализованными наименованиями.

  • parse

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

  • getWeekdayNames

    Возвращает названия дней недели.

  • getMonthNames

    Возвращает названия месяцев.

public static function

date ($format, $time = null, $timezone = null, $locale = null)

Возвращает строковое представление даты в соответствии с указанным форматом.

Параметры
  • $format

    Формат представления даты. Допускается использовать символы формата, предусмотренные для PHP-функции date. Для отображения наименования месяца в нижнем регистре необходимо использовать символ f.

  • $time

    Метка времени. Если не указано, используется текущая метка времени.

  • $timezone

    Строковый идентификатор временной зоны. Если не указано, используется автоматическое определение временной зоны.

  • $locale

    Строковый идентификатор локали. Если не указано, используется автоматическое определение локали.

Пример
waDateTime::date('j f Y года', '06-11-2013')
Результат
6 ноября 2013 года

public static function

format ($format, $time = null, $timezone = null, $locale = null)

Возвращает удобное для чтения строковое представление даты.

Параметры
  • $format

    Формат представления даты/времени. Допускается использовать следующие обозначения формата:

    • humandatetime: подставляет слова «вчера», «сегодня», «завтра» вместо соответствующих дат относительно текущей даты пользователя
    • humandate: возвращает дату в формате d f Y, предназначенном для метода date (перечисленные далее форматы предназначены для использования этим же методом)
    • date: возвращает дату в формате Y-m-d
    • time: возвращает дату в формате H:i
    • fulltime: возвращает дату в формате H:i:s
    • datetime: возвращает дату в формате Y-m-d H:i
    • fulldatetime: возвращает дату в формате Y-m-d H:i:s
    • timestamp: возвращает дату в формате U
  • $time

    Метка времени. Если не указано, используется текущая метка времени.

  • $timezone

    Строковый идентификатор временной зоны. Если не указано, используется автоматическое определение временной зоны.

  • $locale

    Строковый идентификатор локали. Если не указано, используется автоматическое определение локали.

Пример
waDateTime::format('humandatetime')
Результат
Сегодня 17:11

public static function

getDefaultTimeZone()

Возвращает временную зону, используемую по умолчанию, с помощью PHP-функции

date_default_timezone_get.

Пример
waDateTime::getDefaultTimeZone()
Результат
Europe/Moscow

public static function

getFormat ($format, $locale = null)

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

Параметры
  • $format

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

    date_formats, содержащегося в конфигурационном файле локали в директории wa-system/locale/data/, константы PHP-класса DateTime, строки формата, допустимые для PHP-функции date, либо один из идентификаторов, соответствующих предопределенным строкам формата отображения времени, описанным для метода format.

  • $locale

    Строковый идентификатор локали. Если не указано, используется автоматическое определение локали.

Пример
waDateTime::getFormat ('humandate', 'en_US')
Результат
F j, Y

public static function

getFormatJS ($format, $locale = null)

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

Параметры
  • $format

    Строковый идентификатор формата, описанный для параметра $format метода getFormat.

  • $locale

    Строковый идентификатор локали. Если не указано, используется автоматическое определение локали.

Пример
waDateTime::getFormatJS ('humandate', 'en_US')
Результат
MM d, yy

public static function

getTimeZones()

Возвращает список доступных временных зон с локализованными наименованиями.

Пример
waDateTime::getTimeZones()
Результат
[
    [Pacific/Apia] => −11 Апия, Миндуэй, Ниуэ, Паго-Паго
    [Pacific/Fakaofo] => −10 Факаофо, Гонолулу, Джонсон, Раротонга, Таити
    [America/Adak] => −09 Адак
    [Pacific/Gambier] => −09 Остров Гамбье, Маркизы
    [America/Anchorage] => −08 Анкоридж, Джуно, Ном, Sitka, Якутат
    [Pacific/Pitcairn] => −08 Питкэрн
    .
.. [Asia/Anadyr] => +12 Анадырь, Камчатка, Магадан [Pacific/Auckland] => +12 Окленд, Чатэм, Фиджи, Фунафути, Кваджалейн [Pacific/Majuro] => +12 Маджуро, Науру, Тарава, Уэйк, Уоллис [Pacific/Enderbury] => +13 Эндербери, Тонгатапу [Pacific/Kiritimati] => +14 Киритимати ]

public static function

parse ($format, $string, $timezone = null, $locale = null)

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

Параметры
  • $format

    Строковый идентификатор формата, описанный для метода format, кроме humandatetime.

  • $string

    Строковое представление времени, отформатированное в соответствии со строкой формата, указанной в параметре $format.

  • $timezone

    Строковый идентификатор временной зоны. Если не указано, используется автоматическое определение временной зоны.

  • $locale

    Строковый идентификатор локали. Если не указано, используется автоматическое определение локали.

Пример
waDateTime::parse('humandate', 'November 8, 2013', null, 'en_US')
Результат
2013-11-08

public static function

getWeekdayNames ($case = ‘ucfirst’, $length = ‘full’)

Возвращает названия дней недели.

Параметры
Пример
waDateTime::getWeekdayNames()
Результат
[
    1 => 'Понедельник',
    2 => 'Вторник',
    3 => 'Среда',
    4 => 'Четверг',
    5 => 'Пятница',
    6 => 'Суббота',
    7 => 'Воскресенье',
]
Пример
waDateTime::getWeekdayNames('lower', false)
Результат
[
    1 => 'пн',
    2 => 'вт',
    3 => 'ср',
    4 => 'чт',
    5 => 'пт',
    6 => 'сб',
    7 => 'вс',
]

public static function

getMonthNames ($n = 1, $case = ‘ucfirst’)

Возвращает названия месяцев.

Параметры
Пример
waDateTime::getMonthNames()
Результат
[
    1 => 'Январь',
    2 => 'Февраль',
    3 => 'Март',
    4 => 'Апрель',
    5 => 'Май',
    6 => 'Июнь',
    7 => 'Июль',
    8 => 'Август',
    9 => 'Сентябрь',
    10 => 'Октябрь',
    11 => 'Ноябрь',
    12 => 'Декабрь',
]
Пример
waDateTime::getMonthNames(2, 'lower')
Результат
[
    1 => 'января',
    2 => 'февраля',
    3 => 'марта',
    4 => 'апреля',
    5 => 'мая',
    6 => 'июня',
    7 => 'июля',
    8 => 'августа',
    9 => 'сентября',
    10 => 'октября',
    11 => 'ноября',
    12 => 'декабря',
  ]

Преобразование в строку: date() — Взлом с помощью PHP

строка дата ( строка формат [ метка времени int ])

Какими бы простыми ни были временные метки Unix в сценариях, они не очень хороши для конечных пользователей — мало кто отслеживает свои даты, используя количество секунд!

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

Date() принимает два параметра, второй из которых является необязательным, как и strtotime() . Первый параметр — это специальная строка, содержащая коды форматирования того, как вы хотите преобразовать метку времени. Второй параметр — это временная метка, которую вы хотите преобразовать. Если вы ее не укажете, PHP предполагает, что вы хотите использовать текущее время.

Первый параметр является ключевым: это строка букв из предопределенного списка опций. Вы можете использовать другие символы в строке, и они копируются непосредственно в отформатированную дату. Если вы пытаетесь поместить слова в формат даты, которые вы не хотите преобразовывать в их эквивалент даты, вам нужно экранировать их с помощью обратной косой черты \ . Чтобы сделать ситуацию еще более запутанной, если ваша экранированная буква является существующей escape-последовательностью, вам нужно снова экранировать ее! Если это звучит запутанно, не беспокойтесь — мы рассмотрим примеры.

Вот полный список символов формата даты. Обратите внимание, что они чувствительны к регистру!

Символ формата

Описание

Пример

а

Нижний регистр am/pm

до или после полудня

А

Заглавные буквы am/pm

До или после полудня

Б

Swatch Интернет-время

от 000 до 999

с

Дата, время и часовой пояс ISO 8601

2004-06-18T09:26:55+01:00

д

2-значный день месяца, ведущие нули

с 01 по 31

Д

Строка дня, три буквы

пн, чт, сб

Ф

Строка месяца, полная

январь, август

г

12-часовой формат часов, без начальных нулей

от 1 до 12

г

24-часовой формат часов, без начальных нулей

от 0 до 23

час

12-часовой формат часов, ведущие нули

с 01 по 12

ЧАС

24-часовой формат часов, ведущие нули

с 00 до 23

я

Минуты с ведущими нулями

от 00 до 59

я

Активно ли летнее время?

1 если да, 0 если нет

Дж

День месяца, без лидирующих нулей

от 1 до 31

л

Дневная строка, полная

Понедельник суббота

л

Это високосный год?

1 если да, 0 если нет

м

Числовой месяц, ведущие нули

с 01 по 12

М

Короткая строка месяца

янв, авг

н

Числовой месяц, без начальных нулей

от 1 до 12

О

Отличие от Гринвича

200

р

Дата в формате RFC-822

Сб, 22 дек. 1979 17:30 +0000

с

Секунды с ведущими нулями

от 00 до 59

С

Английский порядковый суффикс для номера дня

ул, й, рд или й

т

Количество дней в месяце

от 28 до 31

Т

Часовой пояс для сервера

Гринвичское время, центральноевропейское время, восточноевропейское время

U

Отметка времени Unix

1056150334

ж

Числовой день недели

0 (воскресенье), 6 (суббота)

Вт

ISO-8601 номер недели года

30 (30-я неделя года)

у

Двузначное представление года

97, 02

Д

Четырехзначное представление года

1997, 2002

г

День года

от 0 до 366

Z

Смещение часового пояса в секундах

от -43200 до 43200

Как видите, при преобразовании меток времени в даты у вас есть большой выбор. Вот несколько примеров использования символов формата:

 
 

Первая строка является самой основной и выводит текущее время в 24-часовом формате. Вторая строка представляет собой немного более сложное смешивание вывода date() с текстовой строкой для получения естественного выражения.

Третья строка очень проста — она просто печатает текущий год. Но в четвертой строке у нас есть более сложный пример, который выводит дату в формате «22 октября 2003 года». Обратите внимание, что у нас есть слово «из» среди формата даты, и оно было плавно передано на вывод вместо преобразования. Причина этого в том, что строчные буквы O и строчные буквы F не используются для форматирования в функции даты (хотя это может быть изменено в будущем), поэтому они просто копируются прямо в вывод.

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

В шестой строке вы можете видеть, что те же строки из четвертой строки теперь находятся внутри формата даты. Большинство букв там функционируют как символы формата даты, поэтому они были экранированы: \M\y и т. д. Нижний регистр B, нижний регистр O и нижний регистр E не имеют значения формата даты, поэтому они не экранированы. Нижняя буква R, строчная буква T и строчная буква N имеют особое значение как сами управляющие последовательности (возврат каретки, табуляция и новая строка), что означает, что они должны быть экранированы дважды. Обратите внимание, что перед каждой escape-последовательностью стоит две обратные косые черты, а не одна — это ключ. Одна обратная косая черта не позволяет PHP читать их как символы формата даты, а другая — запрещает PHP читать их как escape-последовательности.

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

 

Хотите изучить PHP 7?

Hacking with PHP полностью обновлен для PHP 7 и теперь доступен в виде загружаемого PDF-файла. Получите более 1200 страниц практических занятий по PHP уже сегодня!

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

Tweet

Следующая глава: Преобразование из компонентов >>

Предыдущая глава: Преобразование из строки

Перейти к: Функции   Обзор функций    Как читать прототипы функций   Работа с переменными   Управление выполнением скрипта   Работа с Датой и временем   Текущее время преобразования из строки, преобразующей строку, преобразующую из компонентов математики, округливая рандомизация тригонометрическая преобразование Другие математические функции преобразования базовые преобразования Математические константы, играющие с помощью строк, считываемых из части строки, заменяющей части строки, преобразующей и из измерения ASCII и из измерения ASCII. внутри строки      Возврат первого вхождения строки      Обрезка пробелов      Перенос строк      Изменение регистра строк      Создание безопасного хэша данных      Альтернативное хэширование данных      Автоматически Вычеркивая строки красивые печатные номера, удаляющие HTML из строки, сравнивающей строки, заполняющие строковую комплексную печать строки, разборочная строка в переменные Регулярные выражения основные регуляторы с preg_match () и preg_match_all () Помощник по регулярным выражениям   Проверка доступности функции   Функции расширения   Приостановка выполнения скрипта   Выполнение внешних программ   Функции, связанные с подключением   Изменение среды выполнения   Функции пользователя      Возвращаемые значения      Параметры      Передача по ссылке      Возврат по ссылке      Параметры по умолчанию      Массив GLOBALS   Рекурсивные функции   Функции переменных   Функции обратного вызова   Функция declare() и тики   Обработка неанглийских символов rs   Недокументированные функции   Резюме   Упражнения   Дополнительная литература   Следующая глава

 

Домашняя страница: Содержание

Copyright © 2015 Paul Hudson. Подписывайтесь на меня: @twostraws.

Преобразование строки формата даты PHP в строку формата .NET DateTime

Недавно мне пришлось преобразовать написанный мной код JavaScript, в котором использовалась строка формата даты в стиле PHP, в строку формата даты в стиле .NET DateTime.

Было бы намного быстрее, если бы у нас был какой-нибудь стол для бесед. После небольшого поиска в Google я ничего не нашел, поэтому решил сделать его сам. Вот плоды моего труда!

Чтобы использовать строку формата даты PHP:
$time = date("g:i a")

Чтобы использовать строку формата даты .NET (в C#):
string time = DateTime.Now.ToString( "ч:мм тт")

День
Дата PHP() ДатаВремя Пример
д дд 01 до 31
Д ддд Пн 9с 0006 по вс
и д 1 от до 31
л (строчная Л) дддд Воскресенье с по Суббота
Н 1 (в понедельник) по 7 (в воскресенье)
С ст , й , й или
с ДатаВремя#ДеньНедели от 0 (воскресенье) до 6 (суббота)
з DateTime#DayOfYear – 1 0 от до 365
Неделя
Дата PHP() ДатаВремя Пример
Ш 42 (42-я неделя года)
День
Дата PHP() ДатаВремя Пример
Ф ММММ Январь с по Декабрь
м ММ 01 от до 12
М МММ Январь Декабрь
п М 1 от до 12
т ДатаВремя#ДнейВМесяце() 28 от до 31
Год
Дата PHP() ДатаВремя Пример
Л DateTime#IsLeapYear() 1 если год високосный, 0 иначе
или гггг (?) ISO-8601, номер года
Д гггг 1999 или 2003
у г. г. 99 или 03
Время
Дата PHP() ДатаВремя Пример
и утра или вечера
А тт AM или PM
Б 000 от до 999
г ч 1 от до 12
Г Х 0 от до 23
ч чч 01 от до 12
Н ЧЧ 00 от до 23
и мм 00 до 59
с нержавеющая сталь 00 от до 59
и фффф 54321
Часовой пояс
Дата PHP() ДатаВремя Пример
и UTC , GMT , Атлантика/Азорские острова
I (заглавная i) DateTime#IsDaylightSavingTime() 1 при переходе на летнее время, 0 в противном случае
О +0200
Р ззз +02:00
Т ЭСТ , МДТ
З -43200 50400
Полная дата/время
Дата PHP() ДатаВремя Пример
с 2004-02-12T15:19:21+00:00
р Чт, 21 декабря 2000 16:01:07 +0200
У секунд с эпохи Unix

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