JavaScript | Дата и время без секунд

JavaScript | Дата и время без секунд

Нам нужно получить строку даты и времени, где время представлено только часами и минутами — без секунд. Как это сделать?

Создадим объект Даты (Date) в JavaScript, чтобы было от чего отталкиваться:

let d = new Date()
Создали объект текущей даты в JavaScript
Создали объект текущей даты в JavaScript

Теперь мы можем получить полную строку временной метки в виде строки:

d.toLocaleString()

'21.07.2023, 10:46:22'
Получили строковое представление временной метки в текущей локали ОС в JavaScript
Получили строковое представление временной метки в текущей локали ОС в JavaScript

Данные для даты будут получены на основе Локали операционной системе, в которой работает среда выполнения JavaScript кода.

В нашем случае мы получаем шесть смысловых единиц:

  1. номер дня в месяце
  2. номер месяца в году
  3. номер года в тысячелетии
  4. номер часа по 24 часовому диапазону
  5. номер минуты по 60 минутному диапазону
  6. номер секунды по 60 секундному диапазону

Эти 6 пунктов визуально поделены на два блока, отделённые одной запятой.

 

Как выкинуть секунды из времени в JavaScript?

Теперь мы можем обрезать получившуюся строку по последним символам при помощи метода slice() для экземпляров String.

d.toLocaleString().slice(0,-3)

'21.07.2023, 10:46'
Обрезали секунды у строкового представления Даты в JavaScript
Обрезали секунды у строкового представления Даты в JavaScript

 

Сборка даты и времени без секунд в JavaScript через встроенные методы получения отдельных частей (смысловых единиц)?

Мы можем отдельными методами получить строку даты и времени без секунд.

d.getDate() + '.' + d.getMonth() + '.' + d.getFullYear() + ', ' + d.getHours() + ':'+ d.getMinutes()

Важно знать, что эти методы возвращают числа, а не строки. По этой причине мы не сможем получить число вида «07». Такая запись невозможна для числа.

Получили некорректный вид строкового представления Даты Времени при помощи отдельных методов в JavaScript
Получили некорректный вид строкового представления Даты Времени при помощи отдельных методов в JavaScript

Также можно получить проблему с нумерацией месяцев так как она начинается с нуля, а не с единицы.

Table 63- Names of months of the year - ECMAScript
Table 63- Names of months of the year — ECMAScript

Поэтому нам нужно подстраховаться для решения этой проблемы.

 

Информационные ссылки

Стандарт ECMAScript — Раздел «21.4 Date Objects» — https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date-objects