Php как вывести текущее время
(PHP 4, PHP 5, PHP 7, PHP 8)
date — Форматирует временную метку Unix
Описание
Возвращает строку, отформатированную в соответствии с указанным в параметре format шаблоном. Используется метка времени, заданная параметром timestamp (метка времени Unix), или текущее системное время, если параметр timestamp не задан. Таким образом, параметр timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time() .
Метки времени Unix не обрабатывают часовые пояса. Используйте класс DateTimeImmutable и его метод форматирования DateTimeInterface::format() для форматирования информации о дате/времени с привязкой к часовому поясу.
Список параметров
Замечание: Функция date() всегда будет генерировать 000000 в качестве микросекунд, поскольку она принимает параметр int , тогда как DateTime::format() поддерживает микросекунды, если DateTime был создан с микросекундами.
Необязательный параметр timestamp представляет собой метку времени типа int , по умолчанию равную текущему локальному времени, если timestamp не указан или null . Другими словами, значение по умолчанию равно результату функции time() .
Возвращаемые значения
Возвращает отформатированную строку с датой.
Ошибки
Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING , если часовой пояс некорректный. Смотрите также date_default_timezone_set()
Список изменений
| Версия | Описание |
|---|---|
| 8.0.0 | timestamp теперь допускает значение null. |
Примеры
Пример #1 Примеры использования функции date()
<?php
// установка часового пояса по умолчанию.
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’ );
// выведет: July 1, 2000 is on a Saturday
echo «July 1, 2000 is on a » . date ( «l» , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Mon, 15 Aug 2005 15:12:46 UTC
echo date ( DATE_RFC822 );
// выведет примерно следующее: 2000-07-01T00:00:00+00:00
echo date ( DATE_ATOM , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
?>
Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.
Пример #2 Экранирование символов в функции date()
Для вывода прошедших и будущих дат удобно использовать функции date() и mktime() .
Пример #3 Пример совместного использования функций date() и mktime()
Замечание:
Данный способ более надёжен, чем простое вычитание и прибавление секунд к метке времени, поскольку позволяет при необходимости гибко осуществить переход на летнее/зимнее время.
Ещё несколько примеров использования функции date() . Важно отметить, что следует экранировать все символы, которые необходимо оставить без изменений. Это справедливо и для тех символов, которые в текущей версии PHP не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.
Пример #4 Форматирование с использованием date()
<?php
// Предположим, что текущей датой является 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)
?>
Для форматирования дат на других языках вместо функции date() можно использовать метод IntlDateFormatter::format() .
Примечания
Замечание:
Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime() . Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).
Временную метку начала запроса можно получить из поля $_SERVER[‘REQUEST_TIME’] .
Php как вывести текущее время

The purpose of the article is to get the current Date and Time in PHP. It is performed by using a simple in-built PHP function date(). The Date is an inbuilt function used to format the timestamp. The computer stores date and time in UNIX timestamp. This time is measured as a number of seconds since Jan 1, 1970. As this is difficult for humans to read, PHP converts timestamps to format in such a way that it is readable and more understandable to humans.
Syntax:
Parameters : The date() have different parameters. Each parameter represents some meaningful unit.
Функции даты и времени
date — форматирует вывод системной даты и времени
time — возвращает текущую метку системного времени Unix
date_default_timezone_get — возвращает временную зону, используемой по умолчанию всеми функциями даты и времени в скрипте
date_default_timezone_set — устанавливает временную зону по умолчанию для всех функций даты и времени в скрипте
getdate — возвращает информацию о дате и времени
strtotime — преобразует текстовое представление даты на английском языке в метку времени Unix
mktime — возвращает метку времени Unix для заданной даты
microtimee — возвращает текущую метку времени Unix с микросекундами
Класс DateTime — позволяет работать с датой и временем как с объектом
date_create — псевдоним DateTime::__construct()
date_format — псевдоним DateTime::format()
date_add — псевдоним DateTime::add()
date_interval_create_from_date_string — псевдоним DateInterval::createFromDateString()
Функция date — выводит текущую дату и время в нужном нам формате.
Возвращает строку, отформатированную в соответствии с указанным шаблоном format .
Необязательным параметром — используется метка времени, заданная аргументом timestamp , или текущее системное время, если timestamp не задан. То есть, если мы не задаем второй параметр, используется вызов функции time() .
Параметры форматирования в руководстве: php.net
date ( $format , $timestamp = time ());
Функция time — возвращает количество секунд, прошедших с начала эпохи Unix ( 1 января 1970 00:00:00 GMT ) до текущего времени.
echo date ( ‘Y-M-d H:i:s’ );
// выведет текущее время
echo ‘<br>’ ;
echo date ( ‘Y-m-d H:i:s’ , time ());
// — тоже выведет текущее время
echo ‘<br>’ ;
echo date ( ‘Y-m-d H:i:s’ , 0 );
// выведет: 1970-01-01 03:00:00 (3 часа — это разница часового пояса)
echo ‘<br>’ ;
echo date ( ‘Y-m-d H:i:s’ , 1 );
// выведет: 1970-01-01 03:00:01 (прибавит к дате начала эпохи Unix одну секунду )
echo ‘<br>’ ;
echo date ( ‘Y-m-d H:i:s’ , time () + 60 );
// прибавляет к текушей дате одну минуту
echo ‘<br>’ ;
echo date ( ‘Y-m-d H:i:s’ , time () + 60 * 60 );
// прибавляет к текушей дате один час
// таким образом можно получить любую дату, как будующую, так и прошедшую
echo ‘<br>’ ;
echo ‘2010 — ‘ . date ( ‘Y’ );
// выведет: 2010-2019
date_default_timezone_get
date_default_timezone_get — эта функция пытается получить временную зону по умолчанию,
то есть узнать, какой часовой пояс используется, по порядку следующими способами:
— чтение настройки временной зоны с помощью функции date_default_timezone_set() (если применимо);
— чтение значения ini -настройки date.timezone (если задана);
— если ни один из способов не принес результата, date_default_timezone_get () вернет временную зону UTC.
Получение временной зоны по умолчанию:
<?php
echo date_default_timezone_get ();
// выведет: Europe/Moscow
?>
date_default_timezone_set
date_default_timezone_set — от работы этой функции зависят все прочие функции даты и времени, перед использованием функциий, например, все той же date , необходимо установить нужный нам часовой пояс с помощью функции date_default_timezone_set . C помощью этой функции можно настроить нужный нам часовой пояс, передав параметром временную зону. Список поддерживаемых временных зон: php.net
getdate
getdate — эта функция позволяет получить дату в виде массива, при этом каждая из составляющих частей даты будет разбита на элементы ассоциативного массива. Индексы возвращаемого ассоциативного массива можно посмотреть здесь: php.net
// так как получаем массив, распечатываем с помощью print_r(),
print_r ( $date );
// либо var_dump()
var_dump ( $date );
// вывод элементов массива по отдельности
echo $date [ ‘year’ ];
// выведет: 2019
?>
— распечатка массива с помощью var_dump(): array (size=11) ‘seconds’ => int 59 ‘minutes’ => int 50 ‘hours’ => int 19 ‘mday’ => int 12 ‘wday’ => int 3 ‘mon’ => int 6 ‘year’ => int 2019 ‘yday’ => int 162 ‘weekday’ => string ‘Wednesday’ (length=9) ‘month’ => string ‘June’ (length=4) 0 => int 1560358259 2019
strtotime
strtotime — с помощью этой функции мы можем задавать время не в каких-то цифрах, но и в цифрах с применением текста на английском языке.
Описание:
strtotime ( $time , $now = time ())
Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени Unix (количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC) относительно метки времени, переданной в now , или текущего времени, если аргумент now опущен.
<?php
echo strtotime ( «+1 day» ); // выведет некое количество секунд
echo ‘<br>’ ;
// с помощью функции date, указав ей необходимые параметры,
// преобразовываем это количество секунд к понятной нам дате
echo date ( ‘Y-m-d H:i:s’ , strtotime ( «+1 day» )); // дата плюс один день
// выведит: дату завтрашнего дня
echo ‘<br>’ ;
echo date ( ‘Y-m-d H:i:s’ , strtotime ( «+1 day 2 hours» ));
// выведит: дату завтрашнего дня плюс два часа
?>
mktime
mktime — работа этой функции похожа на работу функции time (), а так же позволяет прибавлять в более понятной нам форме нужное количесто лет, нужное количество дней и т. д.
Список параметров смотреть здесь: php.net
Аргументы могут быть опущены в порядке справа налево. В этом случае их значения по умолчанию равны соответствующим компонентам локальной даты и времени.
Пример:
Выведем текущую временную метку с помощью функции time () и с помощью функции mktime ().
echo mktime ( date ( «H» ), date ( «i» ), date ( «s» ), date ( «m» ), date ( «d» ), date ( «Y» ));
echo ‘<br>’ ;
echo mktime ( date ( «H» ), date ( «i» ), date ( «s» ) + 1 , date ( «m» ), date ( «d» ), date ( «Y» ));
// результат в третьем случае будет на одну секунду больше
?>
Выведет:
1560360383
1560360383
1560360384 — результат в третьем случае будет на одну секунду больше
— в двух случаях получаем один и то же результат
— но в случае с mktime() мы можем прибавлять числа к той или иной части даты, напимер, прибавим одну секунду: date(«s»)+1 . Результат в третьем случае будет на одну секунду больше.
Пример использования mktime ():
В переменную $st поместим текущую дату и прибавим к ней один год: date(«Y»)+1 . Выведем эту дату с помощью функции date() в нужном нам формате: ‘Y-m-d H:i:s’ и вторым параметром передаем временную метку, которую мы получили выше: $st .
<?php
$st = mktime ( date ( «H» ), date ( «i» ), date ( «s» ), date ( «m» ), date ( «d» ), date ( «Y» )+ 1 );
echo date ( ‘Y-m-d H:i:s’ , $st );
// в результате получаем дату следующего года
?>
Выведет:
2020-06-12 20:38:06
microtime
microtime — эта функция возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday() .
Данная функция позволяет замерять время выполнения скрипта.
Перед началом выполнения скрипта запускается функция microtime (), результат ее работы возвращается в какую — нибудь переменную, например — $start , и после последней выполненной строчки кода, запускается еще раз эта функция microtime (), результат ее возвращается в переменную $end . Далее получаем разницу ( $end — $start ) — это и будет время выполнения скрипта в секундах.
<?php
// возвращает текущую метку системного времени Unix
echo time ();
echo ‘<br>’ ;
// возвращает текущую метку времени Unix с микросекундами
echo microtime ();
var_dump ( microtime ()); // по умолчанию получаем — string
var_dump ( microtime ( true )); // получим — float
echo ‘<br>’ ;
// время выполнения скрипта
$start = microtime ( true );
// функция usleep — откладывает выполнение скрипта на микросекунды
usleep ( 100 );
$end = microtime ( true );
echo $end — $start ;
echo ‘<br>’ ;
// время перебора счетчика
$start = microtime ( true );
for ( $i = 1 ; $i <= 100000 ; $i++ ) <
if ( $i == 100000 ) echo ‘<p>Отчет завершен </p>’ ;
>
$end = microtime ( true );
echo $end — $start ;
?>
0.17640000 1560361954
string ‘0.17640000 1560361954’ (length=21)
float 1560361954.1764
Отчет завершен
0.017999887466431
Класс DateTime
Класс DateTime — позволяет работать с датой и временем как с объектом.
Класс — это набор свойств и методов. Свойства — это ни что иное как переменные в классе, а методы — это ни что иное как функции в классе.
date_create
date_create — эта функция является псевдонимом конструктора класса: DateTime::__construct() и создает объект даты-времени, с которым мы можем дальше работать, то есть для которого мы можем вызывать в дальнейшем какие-то методы или функции.
Для данной функции необходимо передать просто параметр даты, например: год, месяц, число. И внутри нее мы можем вызвать знакомую функцию date () и передать нужную нам дату.
<?php
// создадим переменную $date и для нее вызовим функцию date_create() и,
// в качестве параметра, передадим дату: ‘2016-05-24’
$date = date_create ( ‘2016-05-24’ );
// — echo $date; — вызовет ошибку: объект класса DateTime невозможно
// конвертировать в строку, потому что, $date — объект .
print_r ( $date );
var_dump ( $date );
?>
Функция print_r($date) выведет:
DateTime Object ( [date] => 2016-05-24 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Moscow )
Функция var_dump($date) выведет:
object(DateTime)[1]
public ‘date’ => string ‘2016-05-24 00:00:00.000000’ (length=26)
public ‘timezone_type’ => int 3
public ‘timezone’ => string ‘Europe/Moscow’ (length=13)
date_format
date_format — эта функция является псевдонимом: DateTime::format ().
Она преобразует дату к нужному нам формату, то есть показать в удобочитаемой форме нам данный объект.
<?php
$date = date_create ( date ( ‘Y-m-d H:i:s’ ));
echo date_format ( $date , ‘Y-m-d H:i:s’ );
?>
Выведет:
2019-06-12 21:19:00
date_add
date_add — эта функция является псевдонимом: DateTime::add() .
Она позволяет прибавлять что-то к дате (часы, минуты, секунды и т. д.).
date_interval_create_from_date_string
date_interval_create_from_date_string — эта функция является псевдонимом: DateInterval::createFromDateString ().
Она позволяет прибавлять удобочитаемые интервалы к дате.
<?php
echo date_format ( $date , ‘Y-m-d H:i:s’ );
// — где $date — объект обработанный функцией date_create()
// первый параметр — объект $date,
// второй параметр — date_interval_create_from_date_string()
date_add ( $date , date_interval_create_from_date_string ( ‘2 days + 2hours + 10 minutes + 5 seconds’ ));
echo ‘<br>’ ;
echo date_format ( $date , ‘Y-m-d H:i:s’ );
// где $date — объект обработанный функцией date_add()
?>
Текущая дата и время в 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» |
Неуказанные в таблице цифры, буквы и символы будут выводиться в том виде, в котором они есть.
Выведет Tuesday 04th of September 2001 05:1:28 PM
Обратите внимание на ds = 04th , d -день и s — окончание
Также вы можете присвоить функцию элементу массива или переменной.
Получим: Текущее время: 18:32:17 и дата: 12.03.15
При необходимости вывода зарезервированных символов, состоящих из параметров, поставьте перед буквами \ .