| 5.1.0 | Примеры
Пример #1 Примеры использования функции date()
// установка временной зоны по умолчанию. Доступно начиная с версии PHP 5.1
date_default_timezone_set ( ‘UTC’ );
// выведет примерно следующее: Monday
echo date ( «l» );
// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date ( ‘l jS \of F Y h:i:s A’ );
Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.
Пример #2 Экранирование символов в функции date()
Пример #3 Пример совместного использования функций date() и mktime()
Данный способ более надежен, чем простое вычитание и прибавление секунд к метке времени, поскольку позволяет при необходимости гибко осуществить переход на летнее/зимнее время.
Пример #4 Форматирование с использованием date()
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся во временной зоне Mountain Standard Time (MST)
$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’ ); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$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 17:16:18 MST 2001
$today = date ( ‘H:m:s \m \i\s\ \m\o\n\t\h’ ); // 17:03:18 m is month
$today = date ( «H:i:s» ); // 17:16:18
$today = date ( «Y-m-d H:i:s» ); // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>
Примечания
Смотрите также
Источник
PHP | Дата и время
В этом уроке рассмотрм, как на практике использовать функции PHP по получению даты и времени, а также рассмотрим способы вывода и форматирования даты и времени. Функции PHP, обрабатывающие дату и время, позволяют получать дату и время с того сервера, на котором выполняется сценарий. Также эти функции позволяют нам редактировать и форматировать полученные временные значения перед их отображением (выводом) на экран.
Функция PHP date()
Функция date() выводит текущие дату и время в заданном формате. Также функция может конвертировать формат отметки времени (временная метка, метка времени или timestamp) в удобочитаемый формат.
Синтаксис
Параметры функции date():
Примечание: Отметка времени — это последовательность символов, обозначающая дату и / или время, когда произошло определенное событие.
Обязательный параметр format функции date() указывает, как форматировать дату (или время). Формат задается управляющими командами (латиницей), при этом можно вставлять любые разделители между ними (дефисы, двоеточие и так далее).
Ниже представлена таблица с расшифровкой некоторых символов в строке format :
| Символ в строке format | Описание | Пример возвращаемого значения |
|---|
| День | — | — |
| d | День месяца с 2-мя цифрами | от 01 до 31 |
| D | День недели в текстовом формате, 3 символа | от Mon до Sun |
| z | Порядковый номер дня в году (начиная с 0) | От 0 до 365 |
| Месяц | — | — |
| F | Полное название месяца, например, January или March | от January до December |
| m | Порядковый номер месяца, 2 цифры | от 01 до 12 |
| M | Сокращенное название месяца, 3 символа | от Jan до Dec |
| Год | — | — |
| Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2019 |
| y | Порядковый номер года, 2 цифры | Примеры: 99, 19 |
| Время | — | — |
| a | Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре | am или pm |
| A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
| g | Часы в 12-часовом формате | от 1 до 12 |
| G | Часы в 24-часовом формате | от 0 до 23 |
| h | Часы в 12-часовом формате | от 01 до 12 |
| H | Часы в 24-часовом формате, 2 цифры | от 00 до 23 |
| i | Минуты, 2 цифры | от 00 до 59 |
| s | Секунды, 2 цифры | от 00 до 59 |
Ниже представлены некоторые примеры получения фактической информации о дате и времени:
Источник
Задачи на даты в 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 дней назад.
Источник
PHP | количество дней за текущий месяц в диапазоне дат
я пытаюсь получить даты текущего месяца или любого другого месяца из диапазона дат.
Предположим, у меня есть диапазон дат, как показано ниже.
Я хочу считать только дни / даты текущего месяца «February»
что приведет к 3, если начальная дата и конечная дата выше единицы.
Обновить:
Я думаю, что не мог объяснить свой вопрос,
если я хочу, чтобы программно вывезти дни декабря месяца
21 день с даты начала 2014-12-10 ;
Даты находятся в диапазоне программно из базы данных.
ОБНОВЛЕНИЕ 2:
Другой простой пример
Предположим, что для работника утверждены листья 28-1-2015 в 6-2-2015
Так что здесь сотрудники должны были начать работу
Так что Total Leaves Сотрудник будет принимать это
что дало бы мне всего листьев 9 или же 10 дней
Но если мы увидим, эти листья разделены на два разных месяца.
И я хочу создать отчет, и я хочу увидеть, сколько сотрудников ушло за конкретный месяц, то есть, допустим, в прошлом месяце January
это будет 4 дня, я полагаю, для дат ниже, поскольку даты ниже входят в диапазон дат, и они относятся к январю.
так что если бы я хотел, чтобы результат массива каждого месяца уходил, это было бы
быть как
Решение
Скорректировано после обновления в вопросе
Хорошо, теперь я настроился после вашего последнего обновления. Надеюсь, это то, что вы ищете:
Источник