Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод Date.parse()

Загальний опис

Date.parse() є одним з основних методів у вбудованому об'єкті Date в JavaScript. Цей метод призначений для аналізу рядкового представлення дати та часу та конвертації його в числове представлення. Це числове представлення представляє кількість мілісекунд, що минула від 1 січня 1970 року (UTC) до вказаної дати та часу.

А чому це корисно? Уявіть ситуацію, коли ви отримуєте дату у форматі рядка, можливо, з сервера чи введенням користувача. Щоб маніпулювати цією датою, порівнювати її з іншими датами або виконувати різні операції, набагато зручніше мати її у числовому форматі. Тут Date.parse() і приходить на допомогу.

Розглянемо основний синтаксис:

Date.parse(dateString);

Де dateString - рядок, що представляє дату в розпізнаваному форматі.

Приклад 1:

let timestamp = Date.parse("March 21, 2022");
console.log(timestamp);  // це виведе числове представлення дати "21 березня 2022 року".

Важливо знати, що якщо Date.parse() не може розпізнати введений рядок, він поверне NaN.

Приклад 2:

let timestamp = Date.parse("Неправильний рядок дати");
console.log(timestamp);  // це виведе NaN.

Це дозволяє легко перевіряти, чи було розпізнання успішним.

Приклад 3:

const timestamp = Date.parse("someString");
if (isNaN(timestamp)) {
    console.error("Failed to parse the date string");
}

Date.parse() може розпізнати рядок дати у різних форматах. Проте найбільш надійний формат — це формат ISO 8601, який виглядає так: "YYYY-MM-DDTHH:mm:ss.sssZ". Розберемо його складові докладніше:

  • YYYY представляє рік і складається з чотирьох цифр. Наприклад: 2023.
  • MM — це місяць, представлений двома цифрами, де "01" — січень, а "12" — грудень.
  • DD — день місяця, також представлений двома цифрами, від "01" до "31" в залежності від місяця.
  • T — це літера-роздільник, яка вказує на початок часової частини.
  • HH — години в 24-годинному форматі, від "00" до "23".
  • mm — хвилини, від "00" до "59".
  • ss — секунди, також від "00" до "59".
  • .sss — мілісекунди, три цифри, які можуть бути від "000" до "999".
  • Z вказує на то, що час представлений у координованому всесвітньому часі (UTC). Якщо замість "Z" буде вказано зсув часового поясу, наприклад "+03:00", то час буде відноситися до конкретного часового поясу.

Використання цього формату надає однозначне та послідовне представлення дати та часу, що особливо корисно при обміні даними між різними системами або часовими поясами. Наприклад, якщо ви хочете представити 15 червня 2023 року о 14:30:45.123 в UTC, то це буде виглядати так: 2023-06-15T14:30:45.123Z.

Приклад 4:

let timestamp1 = Date.parse("2022-03-21T10:00:00.000");
console.log(timestamp1);  // місцевий час

let timestamp2 = Date.parse("2022-03-21T10:00:00.000Z");
console.log(timestamp2);  // UTC час
Порада:

Якщо ви часто отримуєте NaN, це означає, що вхідний рядок не може бути розпізнаний як дійсна дата. Переконайтеся, що ваш рядок дійсно представляє дату в підтримуваному форматі.

Порада:

Якщо в рядку дати не вказано часовий пояс, Date.parse() інтерпретує дату як місцевий час. Якщо ви хочете вказати дату в UTC, використовуйте "Z" наприкінці рядка.

Порада:

Не всі браузери однаково обробляють рядкові дати, що не є в форматі ISO. Тому завжди рекомендується використовувати формат ISO 8601 для найкращої сумісності.

Порада:

Незважаючи на те, що Date.parse() може розпізнати рядок дати у різних форматах, результати можуть відрізнятися в залежності від браузера або середовища виконання. При використанні нестандартних форматів завжди тестуйте результат у різних браузерах.

Порада:

Якщо ви працюєте з глобальними додатками або зберігаєте дати з різних часових поясів, завжди зазначайте часовий пояс у рядку дати. Це допоможе уникнути непорозумінь і допоможе забезпечити однорідність даних.

Синтаксис

Date.parse(dateString)

Параметри

*dateString

Рядок у форматі дати та часу.

Return

timestamp

Повертає число, яке представляє timestamp заданої дати. Якщо рядок dateString не може бути розпізнаний як коректна дата, повертається значення NaN.

Переглядачі

Переглядач

1

1

1

3

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


У цьому прикладі користувач може ввести рядкове представлення дати у поле введення, натиснути кнопку, і JavaScript використовує Date.parse() для перетворення цього рядка на таймстемп. Якщо рядок має правильний формат, результат відображається у зеленому кольорі, інакше - у червоному з повідомленням про помилку.

У цьому прикладі ми використовуємо функцію isValidDate, яка використовує Date.parse для спроби перетворити рядок на дату. Якщо результат є NaN (що означає "не число"), це зазначає, що рядок не може бути розпізнаний як дата.

// Використання Date.parse() для перевірки, чи є рядок правильною датою
function isValidDate(dateString) {
    return !isNaN(Date.parse(dateString));
}

const dateToTest = "2023-06-15T14:30:45.123Z";
if (isValidDate(dateToTest)) {
    console.log("Це вірна дата!");
} else {
    console.log("Це невірна дата!");
}

У цьому прикладі ми створюємо функцію daysDifference, яка приймає дві дати у рядковому форматі. За допомогою Date.parse ми перетворюємо ці рядки у таймстемпи (час в мілісекундах від початку епохи Unix). Далі ми визначаємо різницю між цими двома таймстемпами, ділимо її на кількість мілісекунд у одному дні та округлюємо результат.

// Використання Date.parse() для обчислення різниці між двома датами
function daysDifference(dateString1, dateString2) {
    const ONE_DAY = 24 * 60 * 60 * 1000; // кількість мілісекунд у одному дні
    const timestamp1 = Date.parse(dateString1);
    const timestamp2 = Date.parse(dateString2);

    return Math.round(Math.abs((timestamp1 - timestamp2) / ONE_DAY));
}

const startDate = "2023-06-01T00:00:00.000Z";
const endDate = "2023-06-15T00:00:00.000Z";
const difference = daysDifference(startDate, endDate);
console.log(`Різниця між датами складає {difference} днів.`);