Функции временных меток PHP
PHP предоставляет несколько функций для выполнения операций с временными данными. В этой статье мы рассмотрим функции временных меток PHP.
Временная метка - это значение, представленное в секундах, которое рассчитывается с начала эпохи UNIX, 1 января 1970 года.
В этой статье мы рассмотрим, как с помощью PHP-функций даты и времени, связанных с временными метками:
- получить текущую метку времени;
- преобразовать дату / время в метку времени.

Получение текущей временной метки в PHP
Текущее значение временной метки можно получить тремя способами.
time()
Это функция PHP для получения текущего значения временной метки. Она не принимает никаких аргументов. Пример использования:
<?php
$current_timestamp = time();
echo $current_timestamp;
?>
StrToTime ()
Функция предназначена для получения метки времени из заданной строки, представляющей собой значение даты. Например, “Tuesday last week”, “+1 week”, “21 November 2008” и т. д.
Для получения текущей временной метки нужно передать функции значение “now”:
<?php
$current_timestamp = strtotime("now");
echo $current_timestamp;
?>
При вызове strtotime() с переданными некорректными данными, которые не поддерживаются PHP, а функция вернет значение false.
mktime()
Используется для получения метки времени UNIX. Функция принимает набор параметров, обозначающих час, минуты, секунды, месяц, день и год. А также дополнительный флаг, представляющий состояние летнего времени.
Чтобы получить текущую временную метку, в качестве параметра функции передается date() с соответствующими значениями. Например:
<?php
$current_timestamp_by_mktime = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));
echo $current_timestamp_by_mktime;
?>
microtime()
Описанные выше функции PHP возвращают только десятизначное значение. Но microtime() возвращает количество секунд и микросекунд, прошедших с начала эпохи UNIX.
Функция не требует обязательных параметров. Есть необязательный параметр $get_as_float. Он принимает логические значения. Если передать TRUE, то microtime() вернет значение с плавающей запятой. Если FALSEв формате «микросекунды и секунды».
<?php
$current_timestamp_string = microtime();
echo $current_timestamp_string;
$current_timestamp_float = microtime(TRUE);
echo $current_timestamp_float;
?>
date()
Функции date() нужно передать в качестве аргумента U, чтобы получить текущее значение временной метки. Например:
<?php
$current_timestamp_fndate = date("U");
echo $current_timestamp_fndate;
?>
Преобразование даты и времени в метку
Функции strtotime() и mktime() также используются для преобразования указанной даты в формат временной метки.
Функции strtotime() нужно передать дату в любом из поддерживаемых PHP форматов. Например, dd / mm / yyyy, mm / dd / yyyy и т. д. Чтобы использовать mktime(), нужно разложить дату и отправить ее компоненты в эту функцию.
Также можно преобразовать значение метки времени в дату, используя функцию date(). Для этого необходимо передать требуемый формат даты в качестве первого параметра и временную метку в качестве второго. Например:
<?php
$date_from_timestamp = date("d-m-Y",$current_timestamp);
echo "Formatted date from timestamp:" . $date_from_timestamp;
?>
Примечания:
- Эти операции также могут выполняться в объектно-ориентированном стиле программирования с функциями PHP, определенными в интерфейсе класса DateTime.
- Но часть функций для получения временных меток PHP имеют процедурный стиль. Он является псевдонимом конструкторов классов, определенных для объектной модели PHP DateTime.
Скачать исходный код