Time: примеры (PHP)

Использование функции time для работы с Unix-временем в PHP
Раздел: Дата и время
time(void): int

Функция time в PHP

Функция time() возвращает количество секунд, прошедших с начала эпохи Unix (00:00:00 UTC 1 января 1970 года), которое также называют Unix-временем или timestamp. Эта функция не принимает аргументов и всегда возвращает целое число (int).

Область применения

Функция используется для получения текущего времени на сервере. Она часто применяется для записи временных меток в базу данных, измерения времени выполнения скриптов, кеширования, установки сроков действия сессий или кук, а также для различных операций с датами.

Примеры использования

Получение текущей метки времени
<?php
echo time();
?>
1710421200
Форматирование времени
<?php
$timestamp = time();
echo date('Y-m-d H:i:s', $timestamp);
?>
2024-03-14 12:30:00
Вычисление разницы во времени
<?php
$start = time();
// Имитация работы
sleep(2);
$end = time();
echo 'Прошло секунд: ' . ($end - $start);
?>
Прошло секунд: 2

Альтернативные функции в PHP

Возвращает текущую метку времени в микросекундах. Полезно для точного измерения интервалов.

Форматирует временную метку в читаемую строку. Используется вместе с time().

DateTime

Объектно-ориентированный подход для работы с датами и временем, предлагает больше возможностей.

strtotime()

Преобразует текстовое описание даты/времени на английском в Unix-время.

Типичные ошибки

Использование без учета часового пояса
<?php
echo date('H:i', time()); // Может показывать не локальное время
?>
09:30 // Когда локальное время 12:30
Сравнение с будущим временем
<?php
$future = time() + 3600;
if (time() > $future) { // Логическая ошибка
    echo 'Время наступило';
}
?>
// Ничего не выведет
Превышение диапазона 32-битных систем
<?php
// На 32-битной системе после 2038 года
$date = date('Y-m-d', 2500000000);
?>
2038-01-19 03:14:07 // Ошибка переполнения

Изменения в новых версиях

В PHP 8.0 не было значительных изменений функции time(). Однако в PHP 7.1 была улучшена точность значения, возвращаемого time() на Windows. В PHP 5.1 были добавлены расширенные возможности работы с часовыми поясами, что влияет на использование time() совместно с date().

Расширенные примеры

Генератор уникальных идентификаторов
Пример php
<?php
$uniqueId = time() . mt_rand(1000, 9999);
echo $uniqueId;
?>
17104212004567
Кеширование с временным ограничением
Пример php
<?php
$cacheTime = 300; // 5 минут
$lastUpdate = 1710420900;
if (time() - $lastUpdate > $cacheTime) {
    echo 'Обновляем кеш';
}
?>
Обновляем кеш
Определение времени суток
Пример php
<?php
$hour = date('H', time());
if ($hour < 6) $period = 'Ночь';
elseif ($hour < 12) $period = 'Утро';
elseif ($hour < 18) $period = 'День';
else $period = 'Вечер';
echo $period;
?>
День
Создание временных файлов
Пример php
<?php
$tempFile = 'temp_' . time() . '.txt';
file_put_contents($tempFile, 'Данные');
echo $tempFile;
?>
temp_1710421200.txt

Аналоги в других языках

Time в Javascript

Math.floor(Date.now() / 1000);
1710421200

Time в Python

import time
print(int(time.time()))
1710421200

Time в MySQL

SELECT UNIX_TIMESTAMP(NOW());
1710421200

Time в Java

System.currentTimeMillis() / 1000;
1710421200

PHP time function comments

En
Time Return current Unix timestamp