php какой день недели
Работа с датами в PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Для работы с датами в PHP применяются различные функции. Мы начнем изучение с функции time.
Функция time, формат timestamp
Функция time возвращает разницу в секундах между 1-го января 1970 года и текущим моментом времени. Такое представление даты называется форматом timestamp.
Зачем нужен timestamp?
Время в формате timestamp используется для того, чтобы найти разницу между датами в секундах.
С помощью функции time мы можем получить только текущий момент времени. Чтобы получить timestamp за любую дату следует использовать функцию mktime:
Функция mktime
Функция mktime работает аналогично функции time, но, в отличие от нее, принимает параметры: mktime(час, минута, секунда, месяц, день, год) (обратите внимание на то, что месяц и день переставлены местами ). Посмотрите примеры работы:
Полученная разница в секундах будет выглядеть так: 686662617 (обновите страницу и это число поменяется).
Вооружившись знаниями о том, что такое формат timestamp (он нам еще понадобится в дальнейшем), изучим более полезные функции для работы с датами, например, функцию date.
Функция date
Функция date выводит текущие дату и время в заданном формате.
Формат задается управляющими командами (английскими буквами), при этом можно вставлять любые разделители между ними (дефисы, двоеточие и так далее).
Примеры работы с date:
Второй параметр функции date
Функция date имеет второй необязательный параметр, который принимает момент времени в формате timestamp. Если передать этот параметр, то функция date отформатирует не текущий момент времени, а тот, который передан вторым параметром. Этот timestamp можно получить, к примеру, через mktime (но не обязательно):
Функция strtotime
Следующая полезная функция, которую мы разберем, называется strtotime.
К примеру, я могу передать ей строку ‘2025-12-31’ и функция сама разберет, где тут год, где месяц, а где день, и вернет эту дату в формате timestamp.
Все форматы можно посмотреть тут.
Следующий код вернет дату предыдущего понедельника:
Как добавить или отнять дату
Пример 1
Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 1 день и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Пример 2
Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 3 дня и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Пример 3
Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 3 дня и 1 месяц и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Пример 4
Давайте создадим объект с датой за 2025 год, 1 месяц, 1 день, затем отнимем от нее 1 день и выведем в формате ‘день.месяц.год’
Результат выполнения кода:
Что вам делать дальше:
Приступайте к решению задач по следующей ссылке: задачи к уроку.
Дата и время в PHP
В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.
PHP-функции для работы с датой и временем
PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:
time() Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX). getdate( ) Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:
seconds | Секунды (0-59) |
minutes | Минуты (0-59) |
hours | Часы (0-23) |
mday | День месяца (1-31) |
wday | День недели (0-6), начиная с воскресенья |
mon | Месяц (1-12) |
year | Год |
yday | День года (0-365) |
weekday | Название дня недели (например, Friday) |
month | Название месяца (например, January) |
0 | Абсолютное время |
Пример 1
РЕЗУЛЬТАТ ПРИМЕРА 1:
seconds = 1
minutes = 37
hours = 0
mday = 5
wday = 5
mon = 11
year = 2021
yday = 308
weekday = Friday
month = November
0 = 1636061821
Сегодня: 5.11.2021
date() Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:
Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту «\». Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку «n», то надо ввести «\\n», поскольку «\n» является символом новой строки.
Пример 2
РЕЗУЛЬТАТ ПРИМЕРА 2:
Сегодня 05.11.21 00:37
часы
минуты
секунды
месяц
день месяца
год
Пример 3
РЕЗУЛЬТАТ ПРИМЕРА 3:
22 January 1971, at 1.30 pm, Friday
Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.
Пример 4
РЕЗУЛЬТАТ ПРИМЕРА 4:
Friday 05 November 2021 00:37
Сегодня Friday 05 November 2021 00:37:01
MSK
Php какой день недели
Описание string date ( string format [, int timestamp] )
Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038.
Таблица 1. В параметре format распознаются следующие символы
Пример 1. Примеры использования функции date()
// вывод дня недели, например Wednesday echo date ( «l» ); // вывод даты в формате: Wednesday 15th of January 2003 05:51:38 AM Пример 2. Экранирование символов в функции date()
Пример 4. Форматирование с использованием date()
Задачи на даты в PHPУчебник PHPПрактикаВажноеРегуляркиРабота с htaccessФайлы, папкиСессии и кукиРабота с БДПрактика по работе с БД в PHPПеред чтением см. новые уроки раздела «Важное», которые появились выше. ПрактикаДвижок PHPПродвинутые БДАутентификацияПрактикаООП и MVCАбстрактные классы и интерфейсыТрейтыООП МагияПрактикаПрактика: классы как набор методовПеред решением задач изучите теорию к данному уроку. Примеры решения задачЗадачаЗадача. Выведите 23 сентября 2031 года, 12:58:59 в формате timestamp. Можно также воспользоваться функцией strtotime, если представить нужную дату в формате 2031-09-23 12:58:59: ЗадачаЗадача. Найдите разницу между 1 сентября 2010 года, 7:25:59 и текущим моментом времени в секундах. Задача. Выведите текущую дату-время в формате ‘2025.12.31 12:59:59’. Решение: воспользуемся функцией date, передав ей управляющие команды в таком порядке: год (команда Y), потом точку как символ, потом месяц (команда m), опять точку, день (команда d), час (команда H), двоеточие, минуту (команда i), секунду (команда s). Получится такая строка: ‘Y.m.d H:i:s’. Подставим ее в функцию date: Задача. Выведите 1-го сентября текущего года в формате ‘2021.09.01’. Решение: для начала с помощью функции mktime преобразуем 1-го сентября текущего года в формат timestamp. Мы это делаем для того, чтобы подставить найденное число вторым параметром в функцию date (а первым параметром для date мы укажем формат вывода). Ну, а теперь подставим найденный timestamp в функцию date: Задача. Узнайте, какой день недели (словом) был 1 сентября 2010 года. Продолжим решать нашу задачу: мы вывели номер дня недели, а по задаче его следует вывести словом. Для этого составим массив дней недели $week и с его помощью выведем то, что нам нужно. Вот этот массив: Совместим теперь то, что вернет нам date, с нашим массивом $week: Задача. Дана дата в формате ’31-12-2025′. С помощью функций mktime и explode переведите эту дату в формат timestamp. Решение: разобьем строку ’31-12-2025′ функцией explode в массив $arr: Задачи для решенияTimestamp: time и mktimeВыведите текущее время в формате timestamp. Выведите 1 марта 2025 года в формате timestamp. Выведите 31 декабря текущего года в формате timestamp. Скрипт должен работать независимо от года, в котором он запущен. Найдите количество секунд, прошедших с 13:12:59 15-го марта 2000 года до настоящего момента времени. Найдите количество целых часов, прошедших с 7:23:48 текущего дня до настоящего момента времени. Функция dateВыведите на экран текущий год, месяц, день, час, минуту, секунду. Выведите текущую дату-время в форматах ‘2025-12-31’, ‘31.12.2025’, ‘31.12.13’, ’12:59:59′. С помощью функций mktime и date выведите 12 февраля 2025 года в формате ‘12.02.2025’. Создайте массив дней недели $week. Выведите на экран название текущего дня недели с помощью массива $week и функции date. Узнайте какой день недели был 06.06.2006, в ваш день рождения. Создайте массив месяцев $month. Выведите на экран название текущего месяца с помощью массива $month и функции date. Найдите количество дней в текущем месяце. Скрипт должен работать независимо от месяца, в котором он запущен. Сделайте поле ввода, в которое пользователь вводит год (4 цифры), а скрипт определяет високосный ли год. Сделайте форму, которая спрашивает дату в формате ‘31.12.2025’. С помощью функций mktime и explode переведите эту дату в формат timestamp. Узнайте день недели (словом) за введенную дату. Сделайте форму, которая спрашивает дату в формате ‘2025-12-31’. С помощью функций mktime и explode переведите эту дату в формат timestamp. Узнайте месяц (словом) за введенную дату. Сравнение датСделайте форму, которая спрашивает две даты в формате ‘2025-12-31’. Первую дату запишите в переменную $date1, а вторую в $date2. Сравните, какая из введенных дат больше. Выведите ее на экран. На strtotimeДана дата в формате ‘2025-12-31’. С помощью функции strtotime и функции date преобразуйте ее в формат ’31-12-2025′. Сделайте форму, которая спрашивает дату-время в формате ‘2025-12-31T12:13:59’. С помощью функции strtotime и функции date преобразуйте ее в формат ’12:13:59 31.12.2025′. Прибавление и отнимание датВ переменной $date лежит дата в формате ‘2025-12-31’. Прибавьте к этой дате 2 дня, 1 месяц и 3 дня, 1 год. Отнимите от этой даты 3 дня. ЗадачиУзнайте сколько дней осталось до Нового Года. Скрипт должен работать в любом году. Сделайте форму с одним полем ввода, в которое пользователь вводит год. Найдите все пятницы 13-е в этом году. Результат выведите в виде массива дат. Узнайте какой день недели был 100 дней назад. date — Форматирует вывод системной даты/времени ОписаниеСписок параметровШаблон результирующей строки ( string ) с датой. См. параметры форматирования ниже. Также существует несколько предопределенных констант даты/времени, которые могут быть использованы вместо этих параметров. Например: DATE_RSS заменяет шаблон ‘D, d M Y H:i:s’. Возвращаемые значенияОшибкиСписок изменений
|