Как получить текущую дату php
Перейти к содержимому

Как получить текущую дату php

  • автор:

Как получить текущую дату в 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-разработчиком — просто поместите код в любой онлайн-компилятор, вот один из многих. Так же рекомендуется делать и с остальным кодом — это поможет вам лучше понять работу описываемых в статье команд.

Screenshot_1-1801-634308.png

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

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

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

Функция date

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

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

 
date($format);

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

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

Текущая дата и время в 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, Базы данных
  • Разное

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *