JS метод Date.valueOf()
Загальний опис
Date.prototype.valueOf()
є методом об'єкту Date
у JavaScript, який використовується для отримання примітивного значення дати, виражене у мілісекундах від 1 січня 1970 року UTC. За допомогою цього методу можна отримувати числове представлення дати для подальших операцій та обчислень.
Зазвичай, Date.prototype.valueOf()
може використовуватися там, де потрібно порівняти дві дати, провести математичні операції з датами або конвертувати об'єкт дати в рядок. Цей метод зокрема корисний в ситуаціях, коли потрібно використовувати часові мітки для синхронізації даних чи подій в програмах та веб-додатках.
Основною особливістю Date.prototype.valueOf()
є те, що він повертає час у форматі мілісекунд, що дає змогу проводити точні і детальні обчислення та порівняння. Він відрізняється від інших методів, таких як Date.prototype.toString()
, який повертає рядкове представлення дати і часу, і Date.prototype.getTime()
, який також повертає мілісекунди, але використовується з іншими цілями. Приклад використання:
let date = new Date('December 17, 1995 03:24:00');
console.log(date.valueOf()); // 819170640000
У цьому прикладі, дата визначається як 17 грудня 1995 року, 03:24:00, і Date.prototype.valueOf()
повертає числове значення, що представляє цей момент в часі у форматі мілісекунд від початку епохи Unix.
Важливо зазначити, що, хоча цей метод є корисним для отримання числового значення дати, треба враховувати можливість виникнення проблем з точністю при роботі з великими числами. Також, під час використання цього методу варто звертати увагу на часові пояси, оскільки значення, що повертається, завжди в UTC.
Нотатка: | Пам'ятайте про те, що |
Нотатка: | Зазначте, що об'єкт |
Нотатка: | Коли працюєте над високопродуктивними системами або системами реального часу, ви можете оптимізувати ваш код, використовуючи |
Порада: | Використання
|
Синтаксис
valueOf()
Параметри
Return
timestamp
Повертає число, яке представляє часову мітку даної дати в мілісекундах (
timestamp
). Якщо дата є недійсною, метод повернеNaN
.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
3 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі користувач може ввести дві дати та порівняти їх за допомогою кнопки "Порівняти дати". Результат порівняння відображається у div
з ідентифікатором output
.
У цьому прикладі ми маємо дві дати, date1
та date2
, представлені як об'єкти Date
. За допомогою методу Date.prototype.valueOf()
ми конвертуємо об'єкти дат в числові значення, що представляють кількість мілісекунд від 1 січня 1970 року (epoch time), і порівнюємо їх. Якщо значення date1
менше за значення date2
, це означає, що date1
відбувається раніше за date2
.
let date1 = new Date('2023-09-27'); // Створюємо першу дату
let date2 = new Date('2023-10-27'); // Створюємо другу дату
if (date1.valueOf() < date2.valueOf()) { // Порівнюємо дві дати
console.log('Дата 1 раніше за дату 2');
} else if (date1.valueOf() > date2.valueOf()) {
console.log('Дата 2 раніше за дату 1');
} else {
console.log('Дати однакові');
}
У другому прикладі ми визначаємо, скільки днів минуло з певного моменту часу у минулому до поточного моменту. Ми створюємо об'єкт Date
для дати у минулому (pastDate
) та для поточної дати і часу (currentDate
). За допомогою Date.prototype.valueOf()
ми отримуємо числове представлення обох дат і визначаємо різницю в часі, конвертуючи результат з мілісекунд у дні.
let pastDate = new Date('2023-09-27'); // Створюємо дату у минулому
let currentDate = new Date(); // Отримуємо поточну дату та час
let timeDifference = currentDate.valueOf() - pastDate.valueOf(); // Обчислюємо різницю в часі
let daysDifference = timeDifference / (1000 * 60 * 60 * 24); // Конвертуємо мілісекунди в дні
console.log(`Минуло ${Math.floor(daysDifference)} днів від вказаної дати.`);