Php дата часы минуты

Получение даты и времени в PHP. Функция date

В этой статье будет рассмотрено, как работать с датой и временем в языке программирования PHP. Также читатель узнает о таких функциях для работы со временем, как date() , time() и mktime() .

Вместо предисловия

Среди задач, с которыми регулярно сталкивается программист, очень часто встречаются разнообразные манипуляции с датами (dates) и временем (time). Никто не будет спорить с тем, что эти значения (символы, параметры) чрезвычайно важны. И база данных, и любая цифровая автоматизированная система не способны корректно работать, если нет точного времени, а также если информация о времени выполнения того либо иного процесса не сохраняется. Вот лишь некоторые примеры использования временных параметров: — элементарное добавление даты в запись БД; — отображение времени; — вывод дат в различном формате; — проверка текущего времени на соответствие заданному таймеру; — определение срока между 2-мя датами и так далее.

Чтобы работать со временем было удобно, у каждого языка программирования имеются специальные типы данных, позволяющие хранить соответствующие значения. Обычно речь идёт о числовом значении, как целом, так и с плавающей точкой.

В языке программирования PHP работу со временем символизирует UNIX TIMESTAMP. То есть время тут хранится в виде целого числа, а его исчисление начинается с полуночи 1.01.1970 — с так называемой нулевой даты, принятой в Unix и прочих POSIX-совместимых ОС (ещё эту дату называют «Unix-время»). В результате возвращается число секунд, которое прошло с начала Эпохи Unix.

Читайте также:  Php запуск процедур mysql

Прежде чем приступить к дальнейшему изложению материала, следует определить текущее значение времени в формате UNIX TIMESTAMP. Делается это с помощью простейшего кода и функции time:

На момент написания материала было 14 октября 2020 года, поэтому в терминале отобразилось следующее:

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

Screenshot_1-1801-634308.png

Но вернёмся к основной теме разговора. Благодаря коротенькому коду выше, мы получили от сервера текущее время — 1602666005 (у вас значение будет другим, ведь время не стоит на месте))).

Можно согласиться с тем, что для человека такой формат не очень удобен. Но на деле, чем проще представление данных, тем быстрее осуществляется обработка этих данных компьютерным устройством. Да и хранить такие значение в БД в плане ресурсов экономнее, чем при использовании специальных форматов. В итоге PHP работает со значениями времени одинаково на разных платформах (и Unix, и Windows), в результате чего обеспечивается универсальность использования кода.

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

Функция date

Эта функция возвратит пользователю строку в форме даты/времени, сделав это в определённом формате. Формат этот определяет сам пользователь.

Синтаксис функции выглядит так:

Видно, что формат указывается в качестве аргумента. Этим аргументом могут выступать самые разные символы, коих существует целая таблица:

Screenshot_2-1801-352c65.pngScreenshot_3-1801-6267df.png

Теперь давайте попробуем, как эта таблица работает на практике. Выведем текущий день недели:

У меня получился Wednesday, а вот что отобразится в консоли у вас, зависит от дня недели, в который вы напишете эту команду.

Теперь выведем дату в виде YYYY-ММ-DD:

Описание time и mktime

Уже упоминалось, что time возвратит количество секунд с начала т. н. эпохи Unix и вплоть до текущего времени. Однако на практике эта функция чаще используется не в «чистом виде», а вместе с иными функциями.

Для начала займёмся её использованием вместе с меткой текущей даты:

 
* 24 * 60 * 60); // 7 дней; 24 ч.; 60 мин.; 60 сек. echo $nextWeek; // будет выведено что-то вроде 16026782231603283023

А теперь используем её же, но уже совместно с date() . Давайте выведем текущую дату двумя способами, а потом выведем дату, которая наступит через неделю:

 
* 24 * 60 * 60); // Первый способ вывода даты echo 'Сегодня: '. date('Y-m-d') ."\n"; // Второй способ вывода echo 'Сегодня: '. date('Y-m-d', $now) ."\n"; // Дата через неделю echo 'Через неделю будет: '. date('Y-m-d', $nextWeek) ."\n";

Теперь стоит поговорить о том, каким образом с функцией time используется mktime. Именно mktime возвращает метки времени Unix для даты, которую укажет пользователь.

Аргументы могут быть разные, а также опущены справа налево:

Screenshot_4-1801-fb71f6.png

Лучше всего рассмотреть вышеописанное на примере. Давайте выведем в терминал: — текущую полную дату и время (часы, минуты, секунды); — время и дату завтрашнего дня; — время и дату следующего месяца того же дня; — ту же дату, но уже прошедшего года.

На этом всё. Если интересуют более сложные и продвинутые знания по PHP, обратите внимание на соответствующий курс в OTUS!

Источник

Php дата часы минуты

На этой странице описаны форматы даты/времени в BNF-подобном синтаксисе, которые понимает парсер функций: DateTimeImmutable , DateTime , date_create() , date_create_immutable() и strtotime() .

Чтобы отформатировать объекты DateTimeImmutable и DateTime , обратитесь к документации метода DateTimeInterface::format() .

Используемые символы

Описание Формат Примеры
frac (дробная часть) . 5+ ".21342", ".85"
hh (часы в 12-часовом формате) "0"?5 | "1"2 "04", "7", "12"
HH (часы в 24-часовом формате) [01]6 | "2"4 "04", "07", "19"
meridian (Ante meridiem или Post meridiem) [AaPp] .? [Mm] .? [\0\t ] "A.m.", "pM", "am."
MM (минуты) 33 "00", "12", "59"
II (секунды) 29 "00", "12", "59"
space (символ пробела или табуляции) [ \t]
tz (часовой пояс) "("? [A-Za-z] ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+ "CEST", "Europe/Amsterdam", "America/Indiana/Knox"
tzcorrection (числовое значение смещения часового пояса) "GMT"? [+-] hh ":"? MM ? "+0400", "GMT-07:00", "-07:00"
12-часовой формат
Описание Формат Примеры
Только часы (с Ante meridiem или Post meridiem) hh space ? meridian "4 am", "5PM"
Часы и минуты (с Ante meridiem или Post meridiem ) hh [.:] MM space ? meridian "4:08 am", "7:19P.M."
Часы, минуты и секунды (с Ante meridiem или Post meridiem ) hh [.:] MM [.:] II space ? meridian "4:08:37 am", "7:19:19P.M."
MS SQL (Часы, минуты, секунды и дробная часть с Ante meridiem или Post meridiem) hh ":" MM ":" II [.:] 8+ meridian "4:08:39:12313am"
24-часовой формат
Описание Формат Примеры
Часы и минуты 't'? HH [.:] MM "04:08", "19.19", "T23:43"
Часы и минуты (без двоеточия-разделителя) 't'? HH MM "0408", "t1919", "T2343"
Часы, минуты и секунды 't'? HH [.:] MM [.:] II "04.08.37", "t19:19:19"
Часы, минуты и секунды (без двоеточия-разделителя) 't'? HH MM II "040837", "T191919"
Часы, минуты, секунды и часовой пояс 't'? HH [.:] MM [.:] II space ? ( tzcorrection | tz ) "040837CEST", "T191919-0700"
Часы, минуты, секунды и дробная часть 't'? HH [.:] MM [.:] II frac "04.08.37.81412", "19:19:19.532453"
Сведения о часовом поясе tz | tzcorrection "CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"

User Contributed Notes

Источник

Оцените статью