Функции временных меток 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.

Скачать исходный код