GetTime: примеры (JAVASCRIPT)
getTime: NumberОсновы метода getTime()
Метод getTime() является частью объекта Date в JavaScript. Он возвращает числовое значение, соответствующее количеству миллисекунд, прошедших с начала эпохи Unix (1 января 1970 года 00:00:00 UTC).
Метод не принимает никаких аргументов. Возвращаемое значение — целое число (тип number), представляющее временную метку (timestamp). Для дат до 1 января 1970 года метод возвращает отрицательное число.
getTime() часто используется для точных вычислений разницы между датами, хранения временных меток или передачи дат в формате, понятном другим системам.
Базовые примеры использования
const now = new Date();
console.log(now.getTime());// Результат: 1722501234567 (пример числовой метки)
const specificDate = new Date('2024-01-15');
console.log(specificDate.getTime());// Результат: 1705276800000
const pastDate = new Date('1969-12-31');
console.log(pastDate.getTime());// Результат: -86400000 (отрицательное значение)
Похожие методы в JavaScript
valueOf() — возвращает то же значение, что и getTime(). Используется неявно при операциях сравнения.
Date.now() — статический метод, возвращающий текущую временную метку. Более эффективен, чем создание объекта Date.
getUTCFullYear(), getMonth(), getDate() и др. — возвращают отдельные компоненты даты. Полезны, когда нужны конкретные части даты, а не метка.
toISOString() — возвращает строку в формате ISO. Удобен для сериализации и передачи данных.
Типичные ошибки
Использование getTime() для объектов, не являющихся Date.
const str = '2024-01-01';
console.log(str.getTime());// TypeError: str.getTime is not a function
Забывают, что возвращаются миллисекунды, а не секунды.
const diff = date2.getTime() - date1.getTime();
console.log('Разница в секундах:', diff); // Ошибка: разница в миллисекундахСравнение объектов Date без getTime().
const d1 = new Date('2024-01-01');
const d2 = new Date('2024-01-01');
console.log(d1 == d2); // false
console.log(d1.getTime() == d2.getTime()); // trueИстория изменений
Метод getTime() существует с первых версий JavaScript и стандартизирован в ECMAScript 1 (1997). В последних версиях спецификации ECMAScript метод не претерпел существенных изменений. Его поведение остается стабильным для обеспечения обратной совместимости.
Важное уточнение: точность может отличаться в различных средах выполнения. В браузерах могут применяться ограничения для предотвращения атак с использованием времени.
Расширенные примеры
Вычисление времени выполнения операции:
const start = new Date().getTime();
// Длительная операция
for(let i = 0; i < 1000000; i++) {}
const end = new Date().getTime();
console.log(`Операция заняла ${end - start} мс`);// Операция заняла 12 мс
Создание таймера с обновлением:
const startTime = new Date().getTime();
setInterval(() => {
const current = new Date().getTime();
console.log(`Прошло: ${current - startTime} мс`);
}, 1000);Сравнение дат с учетом часового пояса:
const date1 = new Date('2024-01-01T00:00:00Z');
const date2 = new Date('2024-01-01T00:00:00+03:00');
console.log(date1.getTime() === date2.getTime()); // false// false, так как это разные моменты времени в UTC
Генерация уникального идентификатора на основе времени:
const uniqueId = Date.now().toString(36) +
Math.random().toString(36).substr(2);
console.log(uniqueId); // Пример: 'lgn3h7bqf.4w9q7z'Кеширование с временной меткой:
const cache = {
data: null,
timestamp: null,
getData() {
if (!this.timestamp ||
new Date().getTime() - this.timestamp > 60000) {
// Обновляем кеш каждые 60 секунд
this.data = fetchData();
this.timestamp = new Date().getTime();
}
return this.data;
}
};Аналоги в других языках программирования
PHP: time() возвращает секунды, microtime(true) — секунды с микросекундами.
echo time(); // 1722501234
echo microtime(true); // 1722501234.5678Python: time.time() возвращает секунды с дробной частью.
import time
print(time.time()) # 1722501234.5678902MySQL: UNIX_TIMESTAMP() возвращает секунды.
SELECT UNIX_TIMESTAMP(); -- 1722501234C (POSIX): time() из time.h возвращает секунды.
#include
time_t t = time(NULL); // 1722501234