Date.toISOString() в JavaScript — дата у форматі ISO
Загальний опис
Метод Date.prototype.toISOString() – це метод, який в JavaScript використовується для конвертації об'єкта дати в рядок за стандартом ISO 8601, представляючи дату та час в UTC. Важливість даного методу полягає в тому, що він дозволяє забезпечити однакове представлення дати і часу незалежно від часового поясу, що робить його корисним при транспортуванні дати між різними системами та платформами, наприклад, при розробці API.
Таким чином, Date.prototype.toISOString() часто використовується у розробці веб-застосунків для узгодження дати і часу між сервером і клієнтом. Основні сфери застосування – це веб-розробка, розробка API, а також будь-які інші області, де важливо відображення часу в уніфікованому форматі.
Особливістю цього методу є те, що він завжди повертає рядок у форматі YYYY-MM-DDTHH:mm:ss.sssZ. Наприклад, для дати 1 січня 2022 року об 13:15:30.123 метод поверне рядок "2022-01-01T13:15:30.123Z". Зазначимо, що в кінці рядка присутній символ 'Z', який позначає часовий пояс UTC.
let currentDate = new Date();
console.log(currentDate.toISOString()); // Виводить поточну дату і час в форматі ISO 8601, наприклад "2023-09-24T18:15:30.123Z"
У цьому прикладі ми використовуємо метод toISOString() для отримання поточної дати та часу в форматі ISO 8601.
Треба відзначити, що метод Date.prototype.toISOString() не модифікує початковий об'єкт дати, а замість цього створює новий рядок, представляючи дату в потрібному форматі. Це важливо враховувати при розробці програм, де необхідно зберегти оригінальний об'єкт дати без змін.
Для більш досвідчених програмістів цікавою може бути інформація про те, що в разі, якщо дата об'єкта недійсна (наприклад, якщо ви спробуєте встановити місяць як 13), метод toISOString() генерує виняток RangeError. Таким чином, розробники повинні бути обережні та впевнені, що дата, яку вони конвертують, є дійсною.
let invalidDate = new Date('invalid-date');
invalidDate.toISOString(); // Викидує виняток RangeError
У цьому прикладі, спроба виклику toISOString() для недійсного об'єкта дати викликає виняток RangeError, що підкреслює важливість валідації дат перед конвертацією.
- Порада
-
Коли ви використовуєте
автор: BondDate.prototype.toISOString()для створення рядків дати, які будуть відправлені на сервер або отримані з сервера, переконайтеся, що сервер також розуміє формат ISO 8601 і може правильно обробити отриману дату. - Порада
-
Враховуйте, що кожен виклик
автор: BondDate.prototype.toISOString()створює новий рядок, що може вплинути на продуктивність, якщо ви конвертуєте велику кількість дат. У такому випадку розгляньте можливість використання кешування або інших оптимізацій. - Нотатка
-
Пам'ятайте, що
автор: BondDate.prototype.toISOString()повертає завжди час в UTC. Якщо вам потрібно представити час в іншому часовому поясі, вам буде потрібно використовувати додаткові бібліотеки або власні рішення для конвертації часових поясів. - Нотатка
-
Перед використанням метода
Date.prototype.toISOString(), завжди переконуйтеся, що об'єкт дати дійсний. Недійсні дати викличуть винятокRangeError, тому корисно додати валідацію дати перед її конвертацією.
автор: Bondlet date = new Date('invalid-date'); if (isNaN(date.getTime())) { console.error('The date is invalid'); } else { console.log(date.toISOString()); }
Синтаксис
toISOString()
Повернення
string-
Повертає рядок, який представляє задану дату у форматі рядка дати та часу за універсальним часом. Це той самий формат, який має бути розпізнаний методом
автор: BondDate.parse().
Винятки
Виключення RangeError генерується, якщо дата є недійсною або відповідає року, який не може бути представлений у форматі рядка дати. Наприклад, для дат, які знаходяться за межами діапазону для представлення року у форматі ISO 8601, буде виникати це виключення.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 3 | 1 | 4 | 10.5 | 12 | 9 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 3.2 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Цей приклад демонструє, як можна конвертувати поточну дату та час в рядок за стандартом ISO 8601 за допомогою методу Date.prototype.toISOString(). Користувач може натиснути кнопку, щоб виконати конвертацію, і побачити результат у вигляді рядка ISO 8601 на сторінці.
HTML
<header>
<h2 class="title">Date.prototype.toISOString()</h2>
<p class="description">Конвертує дату в рядок за стандартом ISO 8601.</p>
</header>
<main>
<div class="result">
<button onclick="convertToIso()">Конвертувати поточну дату</button>
<p id="isoString">Тут буде рядок ISO 8601</p>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
button {
display: inline-block;
background-color: #4CAF50; /* Green */
border: none;
color: white;
text-align: center;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
border-radius: 12px;
padding: 10px 24px;
}
JS
function convertToIso() {
const currentDate = new Date();
const isoString = currentDate.toISOString();
document.getElementById('isoString').textContent = isoString;
}
//# sourceURL=pen.js
У цьому прикладі ми створюємо новий об'єкт дати, currentDate, який представляє поточний момент часу. Після цього ми використовуємо метод Date.prototype.toISOString() для отримання рядка формату ISO 8601, який виводимо в консоль.
// Створюємо новий об'єкт дати для поточного часу
const currentDate = new Date();
// Використовуємо метод .toISOString() для конвертації поточного часу в рядок формату ISO 8601
const isoString = currentDate.toISOString();
// Виводимо отриманий рядок в консоль
console.log(isoString); // наприклад: "2023-09-24T13:47:26.000Z"
У цьому прикладі ми обробляємо дату, введену користувачем, як рядок і конвертуємо його в об'єкт Date з використанням конструктора Date. Далі, ми використовуємо метод getTime() для перевірки, чи є отримана дата дійсною. Якщо дата дійсна, ми використовуємо метод Date.prototype.toISOString() для конвертації дати в рядок формату ISO 8601.
// Припустимо, користувач вводить дату у форматі MM/DD/YYYY
const userInput = '09/24/2023';
// Перетворюємо введену користувачем дату в об'єкт Date
const userDate = new Date(userInput);
// Перевіряємо, чи є дата дійсною
if (isNaN(userDate.getTime())) {
console.error('Недійсна дата');
} else {
// Конвертуємо дійсну дату в рядок формату ISO 8601
const isoString = userDate.toISOString();
console.log(isoString); // "2023-09-24T04:00:00.000Z"
}
Коментарі
Коментарів ще немає — будьте першим!