Есть ли метод в JS, чтобы подсунуть дату в требуемом формате для парсинга?
Не могу найти.
Нужно вот такую дату: '01.02.2024' превратить в секунды.
Есть ли в JS такой метод как в PHP strtotime?
Дополнительно:
Публикую собственный, полученный код:
const date = '01.02.2024'; const dateSplitted = date.split('.'); const dateReversed = dateSplitted.reverse(); const dateReformatted = dateReversed.join('-'); const milliseconds = Date.parse(dateReformatted); const seconds = milliseconds / 1000; |
const date = '01.02.2024'; const dateSplitted = date.split('.'); const dateReversed = dateSplitted.reverse(); const dateReformatted = dateReversed.join('-'); const milliseconds = Date.parse(dateReformatted); const seconds = milliseconds / 1000;
Метода нет, но полно библиотек, которые это делают. Но можно и самостоятельно вот к такой простой конструкции привести исходную строку: +new Date('2024', +'02' - 1, '01') / 1000.
Почему строку нужно предварительно разбить на частиПотому что парсинг всей строки зависит от локали пользователя и результат может быть неожиданным:
const [year, month, day] = '01.02.2024'.split('.').reverse(); const seconds = (new Date(year, Number(month) - 1, day)) / 1000; // 1706734800 |
const [year, month, day] = '01.02.2024'.split('.').reverse(); const seconds = (new Date(year, Number(month) - 1, day)) / 1000; // 1706734800
Главное не забыть от month отнять единицу, потому что месяцы начинаются с 0
- Я, всё-таки, не вполне понимаю вот эту конструкцию Number(month) - 1.
Можете написать более развёрнуто, зачем это нужно?
Спасибо! - Shimpanze, разбив строку по точке мы получаем массив строк. Чтобы из "02" вычесть 1 надо "02" привести к числу, чем и занимается Number. Ну а -1 вы должны понимать ))
- Алексей Ярков, Да, я уже прочёл, что месяцы начинаются с нуля... Очередной ляп разработчиков языка JS.
Ответы:
Date.parse('01.02.2024') / 1000
- См. спойлер в моём ответе.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Да, в JavaScript есть метод для форматирования даты в требуемом формате для парсинга. Для этого можно использовать объект `Date` и методы `getFullYear()`, `getMonth()`, `getDate()`, `getHours()`, `getMinutes()`, `getSeconds()` и `toISOString()`.
Пример использования:
let currentDate = new Date(); let formattedDate = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate() + 'T' + currentDate.getHours() + ':' + currentDate.getMinutes() + ':' + currentDate.getSeconds() + 'Z'; console.log(formattedDate);
В этом примере мы создаем новый объект `Date`, затем используем методы `getFullYear()`, `getMonth()`, `getDate()`, `getHours()`, `getMinutes()` и `getSeconds()` для получения нужных значений даты и времени. Затем мы объединяем эти значения в строку в требуемом формате.
После этого мы можем использовать полученную строку для парсинга даты с помощью других методов или библиотек в JavaScript.