Функции даты и функции времени php
Функции даты и функции времени php

Функции даты и функции времени php

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

Функции даты и функции времени php

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

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

Функция date в php

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

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

Символ в параметре format Описание Пример возвращаемого значения

Функция даты php
День
d День месяца: две цифры с первым нулём от 01 до 31
D День недели в словесном представлении, 3 символа от Mon до Sun
j День месяца без первого нуля от 1 до 31
l (строчная «L») Полное словесное название дня недели от 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 (с англ. «до полудня») или Post meridiem (с англ. «после полудня») 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)

Пример:

// выведет день недели в формате: 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

time — возвращает количество секунд, прошедших с начала Эпохи Unix (c 1 января 1970 00:00:00 GMT) до текущего времени

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

$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:

mktime — возвращает метку времени Unix для указанной даты

Аргументы:

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

функции mktime и date в php

Рис. 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. Выведите фразу «До моего дня рождения осталось «
  2. Выведите количество секунд, оставшееся до Вашего дня рождения
  3. Закончите фразу » секунд»

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

Использование функций даты и времени

  1. Создайте строковую переменную now .
  2. Присвойте переменной now значение метки времени актуальной даты (сегодня).
  3. Создайте переменную $H и присвойте ей значение часов, выделенных из значения переменной $now .
  4. Создайте переменную $i и присвойте ей значение минут, выделенных из значения переменной $now .
  5. Показывать текущее время в виде: … часов…мин . Изменять окончание слова часов/часа/час в зависимости от кол-ва часов и минут.

Напоминание:
Time() – возвращает текущее время
Date(format,время) – возвращает время, заданного вторым параметром в указанном формате:

  • Часы – H
  • Минуты – i

Функция getdate в php

Функция getdate возвращает информацию о дате и/или времени

  • Возвращается ассоциативный массив с информацией о параметре timemetka , который представляет собой метку времени.
  • Если параметр не использовать, то будет взято текущее локальное время.

Индексы ассоциативного массива:

Источник



Как получить день недели в php на русском примеры

Разберемся в теме дней недели в php. Вообще эта тема довольно интересна! Потому, что периодически нам необходимо работать с датой и в том числе и с днями недели, например сделать какое- расписание. Но мало того! Мы еще разберем тему, как вывести названия русских дней недели.

Получить и вывести день недели в php

  1. Php день недели
  2. Php номер дня недели
  3. Php день недели на русском
  4. Php день недели произвольной даты на русском

    Php день недели

    Результат вывод дня недели по-английски:

    Php номер дня недели

    Это будет английская буква N

    Результат работы функции:

    Php день недели на русском

    Есть множество решений, вот такое нашел в интересное довольно простое и понятное!

    $days = array( 1 => «Понедельник» , «Вторник» , «Среда» , «Четверг» , «Пятница» , «Суббота» , «Воскресенье» );

    Если мы выведем, например, так:

    То выдаст численное значение дня недели.

    Ну и далее нам нужно обратиться к ячейке массива под нашим номером… вот так:

    Результат получения и вывода дня недели на русском

    Php день недели произвольной даты на русском

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

    Нам нужна временная метка даты, я рассказывал о том, как превращать дату(пусть это будет 2019-02-05 11:38) в метку времени(получили — 1549355880) здесь

    Далее нам нужна опять та же функция date , устанавливаем функции аргумент w :

    w -> Порядковый номер дня недели -> От 0 (воскресенье) до 6 (суббота) (см. все аргументы)

    Источник

    Функция date() в php: распространенные форматы, примеры, советы

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

    date(string $format, int|null $timestamp = null): string — сигнатура функции

    Если $timestamp не указан, то будет форматироваться текущая дата т.е. которая сейчас установлена на сервере.

    Пример, который выводит текущую дату на экран:

    Этот код выведет на экран текущую в таком виде: 2021-06-26 12:09:59

    Вторым параметром date() принимает timestamp.

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

    • Y — год
    • m — месяц
    • d — день
    • H — час
    • i — минута
    • s — секунда

    Подробная таблица о символах, которые распознаются в параметре $format находится здесь: https://www.php.net/manual/ru/datetime.format.php

    Готовые константы

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

    Константа Формат Пример
    DateTime::ATOM Y-m-d\TH:i:sP 2021-06-26T12:09:59+03:00
    DateTime::COOKIE l, d-M-Y H:i:s T Saturday, 26-Jun-2021 12:09:59 MSK
    DateTime::ISO8601 Y-m-d\TH:i:sO 2021-06-26T12:09:59+0300
    DateTime::RFC822 D, d M y H:i:s O Sat, 26 Jun 21 12:09:59 +0300
    DateTime::RFC850 l, d-M-y H:i:s T Saturday, 26-Jun-21 12:09:59 MSK
    DateTime::RFC1036 D, d M y H:i:s O Sat, 26 Jun 21 12:09:59 +0300
    DateTime::RFC1123 D, d M Y H:i:s O Sat, 26 Jun 2021 12:09:59 +0300
    DateTime::RFC7231 D, d M Y H:i:s \G\M\T Sat, 26 Jun 2021 12:09:59 GMT
    DateTime::RFC2822 D, d M Y H:i:s O Sat, 26 Jun 2021 12:09:59 +0300
    DateTime::RFC3339 Y-m-d\TH:i:sP 2021-06-26T12:09:59+03:00
    DateTime::RFC3339_EXTENDED Y-m-d\TH:i:s.vP 2021-06-26T12:09:59.000+03:00
    DateTime::RSS D, d M Y H:i:s O Sat, 26 Jun 2021 12:09:59 +0300
    DateTime::W3C Y-m-d\TH:i:sP 2021-06-26T12:09:59+03:00

    Самые распространенные форматы даты и времени

    Допустим текущее время 2021-06-26 12:06:59. Давайте посмотрим как будет вести себя функция date в зависимости от формата.

    Формат даты и времени в России:

    Для хранения в поле date в mysql

    Для хранения в поле datetime в mysql

    С часовым поясом

    Дата в формате ISO 8601

    Дата в формате RFC822

    Дата в формате RFC 2822

    Дата начала текущего месяца

    Дата конца текущего месяца

    Текущий квартал

    Другие форматы

    Если вам недостаточно приведенных примеров, то можете написать свой формат даты и времени. Для этого вам нужно написать свой параметр $format

    Источник

    Php получить номер дня недели

    (PHP 3, PHP 4, PHP 5)

    date — Форматирует системную дату/время

    Описание string date ( string format [, int timestamp] )

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

    Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038.

    Таблица 1. В параметре format распознаются следующие символы

    Символ в строке format ОписаниеПример возвращаемого значения
    a Ante meridiem или Post meridiem в нижнем регистре am или pm
    A Ante meridiem или Post meridiem в верхнем регистре AM или PM
    B Время в стадарте Swatch InternetОт 000 до 999
    c Дата в формате ISO 8601 (добавлено в PHP 5)2004-02-12T15:19:21+00:00
    d День месяца, 2 цифры с ведущими нулямиот 01 до 31
    D Сокращенное наименование дня недели, 3 символаот Mon до Sun
    F Полное наименование месяца, например January или Marchот January до December
    g Часы в 12-часовом формате без ведущих нулейОт 1 до 12
    G Часы в 24-часовом формате без ведущих нулейОт 0 до 23
    h Часы в 12-часовом формате с ведущими нулямиОт 01 до 12
    H Часы в 24-часовом формате с ведущими нулямиОт 00 до 23
    i Минуты с ведущими нулями 00 to 59
    I (заглавная i)Признак летнего времени 1 , если дата соответствует летнему времени, иначе 0 otherwise.
    j День месяца без ведущих нулейОт 1 до 31
    l (строчная ‘L’)Полное наименование дня неделиОт Sunday до Saturday
    L Признак високосного года 1 , если год високосный, иначе 0 .
    m Порядковый номер месяца с ведущими нулямиОт 01 до 12
    M Сокращенное наименование месяца, 3 символаОт Jan до Dec
    n Порядковый номер месяца без ведущих нулейОт 1 до 12
    O Разница с временем по Гринвичу в часахНапример: +0200
    r Дата в формате RFC 2822 Например: Thu, 21 Dec 2000 16:01:07 +0200
    s Секунды с ведущими нулямиОт 00 до 59
    S Английский суффикс порядкового числительного дня месяца, 2 символа st , nd , rd или th . Применяется совместно с j
    t Количество дней в месяцеОт 28 до 31
    T Временная зона на сервереПримеры: EST , MDT .
    U Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT)См. также time()
    w Порядковый номер дня неделиОт 0 (воскресенье) до 6 (суббота)
    W Порядковый номер недели года по ISO-8601, первый день недели — понедельник (добавлено в PHP 4.1.0)Например: 42 (42-я неделя года)
    Y Порядковый номер года, 4 цифрыПримеры: 1999 , 2003
    y Номер года, 2 цифрыПримеры: 99 , 03
    z Порядковый номер дня в году (нумерация с 0)От 0 до 365
    Z Смещение временной зоны в секундах. Для временных зон западнее UTC это отрицательное число, восточнее UTC — положительное.От -43200 до 43200

    Любые другие символы, встреченные в строке format , будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate() .

    Пример 1. Примеры использования функции date()

    // вывод дня недели, например Wednesday
    echo date ( «l» );

    // вывод даты в формате: Wednesday 15th of January 2003 05:51:38 AM
    echo date ( «l dS of F Y h:i:s A» );

    // вывод: July 1, 2000 is on a Saturday
    echo «July 1, 2000 is on a » . date ( «l» , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
    ?>

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

    Пример 2. Экранирование символов в функции date()

    // вывод: Wednesday the 15th
    echo date ( «l \\t\h\e jS» );
    ?>

    Функции date() и mktime() для вывода прошедших и будущих дат.

    = mktime ( 0 , 0 , 0 , date ( «m» ) , date ( «d» )+ 1 , date ( «Y» ));
    $lastmonth = mktime ( 0 , 0 , 0 , date ( «m» )- 1 , date ( «d» ), date ( «Y» ));
    $nextyear = mktime ( 0 , 0 , 0 , date ( «m» ), date ( «d» ), date ( «Y» )+ 1 );
    ?>

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

    Пример 4. Форматирование с использованием date()

    // Предположим, что текущая дата March 10th, 2001, 5:16:18 pm

    $today = date ( «F j, Y, g:i a» ); // March 10, 2001, 5:16 pm
    $today = date ( «m.d.y» ); // 03.10.01
    $today = date ( «j, n, Y» ); // 10, 3, 2001
    $today = date ( «Ymd» ); // 20010310
    $today = date ( ‘h-i-s, j-m-y, it is w Day z ‘ ); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
    $today = date ( ‘\i\t \i\s \t\h\e jS \d\a\y.’ ); // It is the 10th day.
    $today = date ( «D M j G:i:s T Y» ); // Sat Mar 10 15:16:08 MST 2001
    $today = date ( ‘H:m:s \m \i\s\ \m\o\n\t\h’ ); // 17:03:17 m is month
    $today = date ( «H:i:s» ); // 17:16:17
    ?>

    Для форматирования дат на других языках используйте функции setlocale() и strftime() .

    Источник