Time method in php

Функции даты и времени

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

Функция date — выводит текущую дату и время в нужном нам формате.
Возвращает строку, отформатированную в соответствии с указанным шаблоном format .
Необязательным параметром — используется метка времени, заданная аргументом timestamp , или текущее системное время, если timestamp не задан. То есть, если мы не задаем второй параметр, используется вызов функции time() .

Параметры форматирования в руководстве: php.net

date ( $format , $timestamp = time ());

time

Функция time — возвращает количество секунд, прошедших с начала эпохи Unix ( 1 января 1970 00:00:00 GMT ) до текущего времени.

echo date ( ‘Y-M-d H:i:s’ );
// выведет текущее время
echo ‘
‘ ;

echo date ( ‘Y-m-d H:i:s’ , time ());
// — тоже выведет текущее время
echo ‘
‘ ;

echo date ( ‘Y-m-d H:i:s’ , 0 );
// выведет: 1970-01-01 03:00:00 (3 часа — это разница часового пояса)
echo ‘
‘ ;

echo date ( ‘Y-m-d H:i:s’ , 1 );
// выведет: 1970-01-01 03:00:01 (прибавит к дате начала эпохи Unix одну секунду )
echo ‘
‘ ;

echo date ( ‘Y-m-d H:i:s’ , time () + 60 );
// прибавляет к текушей дате одну минуту
echo ‘
‘ ;

echo date ( ‘Y-m-d H:i:s’ , time () + 60 * 60 );
// прибавляет к текушей дате один час
// таким образом можно получить любую дату, как будующую, так и прошедшую
echo ‘
‘ ;

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.
Получение временной зоны по умолчанию:

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 опущен.

echo strtotime ( «+1 day» ); // выведет некое количество секунд
echo ‘
‘ ;

// с помощью функции date, указав ей необходимые параметры,
// преобразовываем это количество секунд к понятной нам дате
echo date ( ‘Y-m-d H:i:s’ , strtotime ( «+1 day» )); // дата плюс один день
// выведит: дату завтрашнего дня
echo ‘
‘ ;

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 ‘
‘ ;

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 .

$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 ) — это и будет время выполнения скрипта в секундах.

// возвращает текущую метку системного времени Unix
echo time ();
echo ‘
‘ ;

// возвращает текущую метку времени Unix с микросекундами
echo microtime ();
var_dump ( microtime ()); // по умолчанию получаем — string
var_dump ( microtime ( true )); // получим — float
echo ‘
‘ ;

// время выполнения скрипта
$start = microtime ( true );
// функция usleep — откладывает выполнение скрипта на микросекунды
usleep ( 100 );

$end = microtime ( true );
echo $end — $start ;
echo ‘
‘ ;

// время перебора счетчика
$start = microtime ( true );
for ( $i = 1 ; $i if ( $i == 100000 ) echo ‘

Отчет завершен

‘ ;
>
$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 () и передать нужную нам дату.

// создадим переменную $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 ().
Она преобразует дату к нужному нам формату, то есть показать в удобочитаемой форме нам данный объект.

$date = date_create ( date ( ‘Y-m-d H:i:s’ ));
echo date_format ( $date , ‘Y-m-d H:i:s’ );
?>

date_add

date_add — эта функция является псевдонимом: DateTime::add() .

Она позволяет прибавлять что-то к дате (часы, минуты, секунды и т. д.).

date_interval_create_from_date_string

date_interval_create_from_date_string — эта функция является псевдонимом: DateInterval::createFromDateString ().

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

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 ‘
‘ ;

echo date_format ( $date , ‘Y-m-d H:i:s’ );
// где $date — объект обработанный функцией date_add()
?>

— выведет:
2019-06-12 21:26:20
2019-06-14 23:36:25

Источник

time

Возвращает количество секунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 GMT) до текущего времени.

Замечание:

Метки времени Unix не содержат никакой информации относительно локального часового пояса. Рекомендуется использовать класс DateTimeImmutable для работы с информацией о дате и времени, чтобы избежать подводных камней, связанных с метками времени Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущую метку системного времени.

Примеры

Пример #1 Пример использования time()

Результатом выполнения данного примера будет что-то подобное:

Примечания

Время начала запроса доступно в глобальной переменной $_SERVER[‘REQUEST_TIME’] .

Смотрите также

  • DateTimeImmutable
  • date() — Форматирует временную метку Unix
  • microtime() — Возвращает текущую метку времени Unix с микросекундами

User Contributed Notes 1 note

time() gives the timestamp of Greenwich Mean Time (GMT) which is defined as the official time for the whole earth. You get the local time by adding the time zone offset to this timestamp.

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