Как получить текущую дату в PHP.
Одна из самых частых проблем, с которой приходиться сталкиваться при работе с датами в PHP – это получение текущей даты.
На самом деле, сделать это очень легко. Для этого можно воспользоваться функцией date().
Чтобы получить дату в формате «год-месяц-день часы:минуты:секунды», нужно воспользоваться следующей функцией:
echo date('Y-m-d H:i:s');
В результате получим, что-то вроде этого:
Если нужны данные только о годе месяце и дне, то можно написать так:
echo date('Y-m-d');
Формат вывода можно корректировать:
echo date('Y/m/d');
Как видите, особо сложного здесь ничего нет. Всего одна строка кода.
Больше моих уроков по PHP для начинающих здесь.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Получение даты и времени в PHP. Функция date
В этой статье будет рассмотрено, как работать с датой и временем в языке программирования PHP. Также читатель узнает о таких функциях для работы со временем, как date() , time() и mktime() .
Вместо предисловия
Среди задач, с которыми регулярно сталкивается программист, очень часто встречаются разнообразные манипуляции с датами (dates) и временем (time). Никто не будет спорить с тем, что эти значения (символы, параметры) чрезвычайно важны. И база данных, и любая цифровая автоматизированная система не способны корректно работать, если нет точного времени, а также если информация о времени выполнения того либо иного процесса не сохраняется. Вот лишь некоторые примеры использования временных параметров: — элементарное добавление даты в запись БД; — отображение времени; — вывод дат в различном формате; — проверка текущего времени на соответствие заданному таймеру; — определение срока между 2-мя датами и так далее.
Чтобы работать со временем было удобно, у каждого языка программирования имеются специальные типы данных, позволяющие хранить соответствующие значения. Обычно речь идёт о числовом значении, как целом, так и с плавающей точкой.
В языке программирования PHP работу со временем символизирует UNIX TIMESTAMP. То есть время тут хранится в виде целого числа, а его исчисление начинается с полуночи 1.01.1970 — с так называемой нулевой даты, принятой в Unix и прочих POSIX-совместимых ОС (ещё эту дату называют «Unix-время»). В результате возвращается число секунд, которое прошло с начала Эпохи Unix.
Прежде чем приступить к дальнейшему изложению материала, следует определить текущее значение времени в формате UNIX TIMESTAMP. Делается это с помощью простейшего кода и функции time:
На момент написания материала было 14 октября 2020 года, поэтому в терминале отобразилось следующее:
1602666005Вы можете проверить вышеописанную команду и получить в PHP текущую дату и время самостоятельно, даже если не являетесь PHP-разработчиком — просто поместите код в любой онлайн-компилятор, вот один из многих. Так же рекомендуется делать и с остальным кодом — это поможет вам лучше понять работу описываемых в статье команд.
Но вернёмся к основной теме разговора. Благодаря коротенькому коду выше, мы получили от сервера текущее время — 1602666005 (у вас значение будет другим, ведь время не стоит на месте))).
Можно согласиться с тем, что для человека такой формат не очень удобен. Но на деле, чем проще представление данных, тем быстрее осуществляется обработка этих данных компьютерным устройством. Да и хранить такие значение в БД в плане ресурсов экономнее, чем при использовании специальных форматов. В итоге PHP работает со значениями времени одинаково на разных платформах (и Unix, и Windows), в результате чего обеспечивается универсальность использования кода.
Если же говорить об удобстве пользователя, то у разработчиков есть масса средств это удобство обеспечить.
Функция date
Эта функция возвратит пользователю строку в форме даты/времени, сделав это в определённом формате. Формат этот определяет сам пользователь.
Синтаксис функции выглядит так:
date($format);Видно, что формат указывается в качестве аргумента. Этим аргументом могут выступать самые разные символы, коих существует целая таблица:
Теперь давайте попробуем, как эта таблица работает на практике. Выведем текущий день недели:
У меня получился 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 для даты, которую укажет пользователь.
Аргументы могут быть разные, а также опущены справа налево:
Лучше всего рассмотреть вышеописанное на примере. Давайте выведем в терминал: — текущую полную дату и время (часы, минуты, секунды); — время и дату завтрашнего дня; — время и дату следующего месяца того же дня; — ту же дату, но уже прошедшего года.
На этом всё. Если интересуют более сложные и продвинутые знания по PHP, обратите внимание на соответствующий курс в OTUS!
Текущая дата и время в php
В вышеприведенном примере дата будет выводиться числами в формате дд/мм/гг. В данной статье мы рассмотрим то, как выводить время и дату в любом удобном для вас формате.
Функция date предназначена как для выведения времени и даты, так и преобразования временной метки в нужный формат. Метка представляет собой количество секунд, которые прошли с даты основания linux. Для получения данного числа существует функция time (), а наличие временной метки в date необязательно.
Для выведения даты в нужном вам формате вы можете воспользоваться модификаторами, приведенными в первом параметре.
Параметр | Описание | Что возвращает | a | нижний регистр, выведение am или pm | "am" или "pm" | A | верхний регистр, выведение AM или PM | "AM" или "PM" | d | текущий день, 2 цифры с первым 0 | "01"-"31" | F | Полное название месяца | «February» | g | 12-часовой формат времени, 0 в начале отсутствует | "1" до "12" | G | 24-часовой формат времени, с отсутствием в начале | 0 "0"-"24" | h | часы, 12-часовой формат, первый ноль. | "01"-"12" | H | часы, 24-часовой формат, первый ноль. | "00" до "24" | i | минуты | "00"-"59" | I | 1 (день) и 0 (ночь) | "1","0" | j | текущий день, 2 цифры без 0 в начале | "1"-"31" | l | Полное название текстом текущего дня недели | "Monday" | L | 1 — если високосный год, в других случаях ноль | "1"-0" | m | Месяц с 0 в начале | "01"-12" | M | Первые три буквы названия текущего месяца | “Feb” | n | месяц (без нуля в начале) | «1»- «12» | r | вывод времени и даты в формате RFC 822 | "Thu, 21 Dec 2000 16:01:07 +0200" | s | секунды. | "00" до "59" | S | Английское окончание | "th" или "nd" | t | Число дней в месяце | "28"-"31" | T | Часовой пояс | "MDT" | U | Число секунд с начала века | "999869506" | w | День недели по счету | "0"(вс)-"6"(сб) | Y | Год в виде 4 цифр | "2015" | y | Год в виде 2 цифр | "15" | z | день в году | "0"-"365" | Z | часовой пояс от Гринвича, выраженный в секундах (положительная для востока, отрицательная для запада) | "-43200" - "43200" |
Неуказанные в таблице цифры, буквы и символы будут выводиться в том виде, в котором они есть.
echo (date("d = F = Y ")); //Выведет 04 = September = 2001 echo (date("l dS of F Y h:I:s A"));
Выведет Tuesday 04th of September 2001 05:1:28 PM
Обратите внимание на ds = 04th , d -день и s - окончание
Также вы можете присвоить функцию элементу массива или переменной.
$date_today = date("m.d.y"); //присвоено 12.03.15 $today[1] = date("H:i:s"); //присвоит 1 элементу массива 18:32:17 echo("Текущее время: $today[1] и дата: $date_today .");
Получим: Текущее время: 18:32:17 и дата: 12.03.15
При необходимости вывода зарезервированных символов, состоящих из параметров, поставьте перед буквами \ .
$examp = date ("H:m:s \m \i\s \m\o\n\t\h");` //Выведет 18:32:17 m is month
Дата и Время
Информация о том, как получить дату и время в удобном виде.
Для работы со временем используйте специальный класс php\time\Time , чтобы получить текущее время и дату используйте код:
use php\time\Time; $now = Time::now(); alert($now->toString('yyyy-MM-dd HH:mm'));
Где формат вывода времени это yyyy-MM-dd HH:mm , y - это год, M - месяц, d - день, H - час, m - минута, s - секунда.
Чтобы вывести только дату используйте формат yyyy-MM-dd , например. Можно использовать и другое сочетание, например dd.MM.yyyy .
Как получить текущий год, месяц и день?
Удобный способ получить текущий год, месяц и день.
Для этого используйте класс php\time\Time и его методы:
use php\time\Time; $now = Time::now(); // получаем текущую дату $year = $now->year(); // текущий год $month = $now->month(); // текущий месяц
День можно получить в разном контексте:
$day = $now->day(); // день в году, от 1 до 356 $dayOfMonth = $now->dayOfMonth(); // день в месяце, от 1 до 31 $dayOfWeek = $now->dayOfWeak(); // день недели, от 1 до 7, 1 - воскресенье, 7 - суббота.
Как получить timestamp в linux виде?
Простой способ получить linux timestamp значение времени в системе.
Используйте класс php\time\Time или функцию time() из php:
use php\time\Time; $time = Time::seconds(); // в секундах. $millis = Time::millis(); // в миллисекундах. // или $time = time(); // в секундах.
Linux timestamp это количество секунд, прошедших с 1970 года на текущий момент времени.
Как получить текущее время в другой временной зоне?
Применение timezone возможностей для получения текущего времени.
Используйте классы php\time\Time и php\time\TimeZone :
use php\time\Time; use php\time\TimeZone; $now = Time::now(TimeZone::of('Europe/London')); alert($now->toString('yyyy.MM.dd HH:mm'));
Список возможных временных зон, можно найти на странице "Временные Зоны (Timezone)".
Как получить название месяца даты?
$month = 7; // 7 месяц. $name = Time::now()->replace(['month' => $month])->toString('MMMM'); alert($name);
Если вам необходимо получить имя месяца на русском языке, то передайте локаль в метод toString() :
$month = 7; // 7 месяц. $name = Time::now()->replace(['month' => $month])->toString('MMMM', new Locale('ru', 'RU')); // ru - язык, RU - страна alert($name);
Укороченное название месяца можно получить передав MMM вместо MMMM в метод toString() .
Как парсить дату из строки по определенному формату?
Для парсинга даты из строки используйте класс php\time\TimeFormat и его метод parse() :
$format = new TimeFormat('dd.MM.yyyy'); $date = $format->parse('12.03.2017'); // $date это объект типа Time var_dump($date);
Как прибавить/убавить к дате день, месяц год и т.д.?
Способ легко менять составляющие даты.
$date = Time::now(); // берем текущую дату $newDate = $date->add(['day' => 1]); // прибавить к дате 1 день alert($newDate->toString('dd.MM.yyyy')); // показываем дату
Также метод позволяет и отнимать день, месяц и т.п. Для этого просто передавайте отрицательные значения:
$date = Time::now(); // берем текущую дату $newDate = $date->add(['day' => -1]); // уменьшить дату на 1 день alert($newDate->toString('dd.MM.yyyy')); // показываем дату
Кроме day еще доступны другие варианты:
- month - месяц
- year - год
- hour - час
- min - мининута
- sec - секунда
- millis - мл. секунды.
PHP API
Описание стандартных классов и функций php.
- IDE, Среда
- Переход с DevelStudio
- Переход с GameMaker
- Язык PHP
- Файловая система
- Дата и время
- UI, Дизайн
- JavaFX CSS
- Игры и развлечения
- Интернет и сети
- Аудио и видео
- Системные утилиты
- Лаунчеры и оболочки
- SQL, Базы данных
- Разное