Date.toJSON() в JavaScript — дата в рядок ISO


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

Метод Date.prototype.toJSON() дозволяє конвертувати об’єкти Date у рядковий формат JSON, забезпечуючи зручний обмін даними між клієнтською та серверною частиною веб-додатків. Метод особливо корисний, коли потрібно відправити дані серверу або зберегти їх у локальному сховищі у форматі, який легко інтерпретується та обробляється.

Date.prototype.toJSON() примінюється для трансформації об'єкта дати у рядок у відповідності до формату JSON, який є ідеальним для передачі даних через HTTP. Для оптимальної роботи цього методу, важливо правильно ініціалізувати дату.

При використанні методу Date.prototype.toJSON(), об'єкт Date конвертується в рядок у форматі ISO 8601, наприклад "2023-09-25T14:15:35Z", що відображає UTC час. Ось приклад використання:

let date = new Date('2023-09-25T14:15:35Z');
console.log(date.toJSON()); // Виведе: "2023-09-25T14:15:35.000Z"

У контексті веб-розробки, основні сфери застосування Date.prototype.toJSON() включають роботу з API, серверами, базами даних, а також для локального зберігання інформації. Метод стає незамінним, коли вам потрібно передавати дані між різними сервісами та платформами, які підтримують формат JSON.

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

Ще одна особливість полягає у тому, що Date.prototype.toJSON() автоматично враховує часові зони та конвертує дату та час до UTC, тому розробникам не потрібно турбуватися про конвертацію часових зон вручну.

автор: Bond

Порада

Коли ви працюєте із датами, завжди переконайтеся, що об'єкт Date правильно ініціалізований перед тим, як використовувати toJSON(). Це забезпечить точність і консистентність ваших даних та їх подальшу правильну конвертацію у формат JSON.

автор: Bond
Порада

Враховуйте, що метод Date.prototype.toJSON() поверне null, якщо дата недійсна. Отже, завжди враховуйте можливість помилок і підготуйте ваш код до правильної обробки таких ситуацій, щоб забезпечити стабільність та надійність вашого додатку.

let invalidDate = new Date('invalid date');
console.log(invalidDate.toJSON()); // null
автор: Bond
Нотатка

Пам'ятайте, що використання Date.prototype.toJSON() дозволяє не тільки отримувати дату у вигляді рядка, але і гарантує, що дата буде у міжнародному форматі та часовій зоні UTC. Це особливо важливо при роботі з міжнародними проєктами або коли вам потрібно передавати дані між різними сервісами та платформами.

автор: Bond
Нотатка

Професіоналам можна використовувати Date.prototype.toJSON() у комбінації з іншими API, такими як localStorage або Fetch API, для зберігання або відправки даних, оптимізуючи та уніфікуючи роботу з датами та часом в різних частинах вашого додатку.

автор: Bond

Синтаксис

toJSON()

Повернення

string

Повертає рядок, який представляє задану дату в форматі рядка дати та часу згідно з універсальним часом, або null, якщо дата є недійсною. Для дійсних дат значення, що повертається, є таким самим, як і у методі toISOString().

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
3 1 4 10.5 12 8
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 3.2
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми створюємо новий об'єкт дати, який представляє поточну дату і час, використовуючи конструктор Date. Після цього ми конвертуємо цей об'єкт дати в рядок формату JSON за допомогою методу Date.prototype.toJSON(). Результат – рядкове представлення дати в міжнародному форматі та часовій зоні UTC – виводиться в консоль.

// Створення нового об'єкта дати
let currentDate = new Date();

// Використання методу toJSON для отримання рядкового представлення дати у форматі JSON
let jsonDate = currentDate.toJSON();

// Виводимо результат в консоль
console.log(jsonDate);  // Приклад виводу: "2023-09-25T14:36:45.000Z"
автор: Bond

У другому прикладі ми створюємо об'єкт specificDate, ініціалізуючи його конкретною датою та часом. Далі ми перевіряємо, чи є дата дійсною, використовуючи умову if (!isNaN(specificDate)). Якщо дата є дійсною, ми конвертуємо її в формат JSON за допомогою методу toJSON() і виводимо результат в консоль. У випадку недійсної дати виводиться повідомлення про помилку.

// Створення об'єкта дати з конкретною датою
let specificDate = new Date('2023-12-25T12:00:00');

// Перевірка чи дата дійсна
if (!isNaN(specificDate)) {
  // Конвертація дійсної дати в JSON формат
  let jsonSpecificDate = specificDate.toJSON();
  console.log(jsonSpecificDate); // "2023-12-25T12:00:00.000Z"
} else {
  // Вивід повідомлення про помилку, якщо дата недійсна
  console.log('Введено недійсну дату');
}
автор: Bond

Цей приклад демонструє, як конвертувати введену користувачем дату в рядок у форматі JSON, використовуючи метод Date.prototype.toJSON(). Користувач може вибрати дату за допомогою поля вводу та натиснути кнопку для конвертації вибраної дати в JSON, результат буде відображено на веб-сторінці.

HTML

<header>
  <h2 class="title">Date.prototype.toJSON()</h2>
  <p class="description">Конвертує об'єкт дати в рядок у форматі JSON.</p>
</header>
<main>
  <div class="result">
    <label for="dateInput">Введіть дату: </label>
    <input type="date" id="dateInput" value="2023-09-25">
    <button onclick="convertDateToJSON()">Конвертувати в JSON</button>
    <p id="jsonOutput">Тут буде JSON дата</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);
}

JS

function convertDateToJSON() {
  // Отримання введеної дати з поля вводу
  let inputDate = document.getElementById('dateInput').value;

  // Створення об'єкта дати на основі введеної дати
  let selectedDate = new Date(inputDate);

  // Використання методу toJSON для конвертації обраної дати в JSON рядок
  let jsonDate = selectedDate.toJSON();

  // Виведення результату на веб-сторінку
  document.getElementById('jsonOutput').textContent = jsonDate;
}
//# sourceURL=pen.js
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід