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

 

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

Перевод статьи «PHP Timestamp» был подготовлен дружной командой проекта Сайтостроение от А до Я