Как проанализировать дату из данных после загрузки страницы

После загрузки страницы HTML-рендеринг выглядит следующим образом.

<h3>Lorem ipsum dolor sit</h3>
<p>Meeting scheduled for 7/19/26, You should receive the email confirmation shortly.</p>
<h4>Lorem ipsum dolor sit</h4>
<p>lorem ipsum dolor sit</p>

Теперь я хочу изменить формат даты, например, 19 июля, с помощью jQuery или JavaScript, чтобы параграф был таким.

Meeting scheduled for July 19th, You should receive the email confirmation shortly.

Что вы пробовали и что не сработало так, как ожидалось? Если у вас нет более структурированного доступа к данным, я полагаю, вам придется вручную проанализировать это значение из текста, чтобы вы могли преобразовать его в Date и отформатировать его по своему усмотрению. Где конкретно вы застреваете?

David 19.07.2024 15:33

Я всего лишь базовый разработчик и не знаю, как это сделать.

user3376865 19.07.2024 15:35
July 19th, тебя не беспокоит 2026 год?
Keith 19.07.2024 15:36

его требование. так что год не беспокоит

user3376865 19.07.2024 15:37

@user3376865: user3376865: «не знаю, как это сделать» — шаг за шагом. Разбейте проблему на более мелкие части. Ваша первая задача — прочитать это значение из разметки. jQuery предоставляет функциональные возможности для выбора элемента и чтения текста этого элемента. Когда вы делаете попытку, вы где-нибудь застреваете?

David 19.07.2024 15:38

да, я не могу проанализировать дату из строки.

user3376865 19.07.2024 15:42

@ user3376865: Какую попытку вы предприняли и почему этот код не работает должным образом? Пожалуйста, обновите вопрос, включив в него минимально воспроизводимый пример в виде работоспособного фрагмента кода, который демонстрирует проблему, с которой вы столкнулись, и укажите, в чем она заключается.

David 19.07.2024 15:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
7
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Можете ли вы попробовать это?

Вывод пишется как в консоли, так и в самом теле, вы можете доработать скрипт под свои нужды.

  function getOrdinal(n) {
        let ord        = ["st", "nd", "rd"]
        let exceptions = [11, 12, 13]
        let nth        = ord[(n % 10) - 1] == undefined || exceptions.includes(n % 100) ? "th" : ord[(n % 10) - 1]
        return n + nth
    };

    var temp    = document.getElementsByTagName("p")[0].innerHTML 
    temp        = temp.replace(',','');

    var strDate = temp.match(/\d{1,2}\D\d{1,2}\D(\d{4}|\d{2})/g)
    var objDate = new Date(strDate);

    var myDate  = objDate.getDate();
    var myMonth = objDate.toLocaleString('default', { month: 'long' });
    var myYear  = objDate.getFullYear();
    
    var myStr   = temp.replace(strDate, myMonth + ' ' + getOrdinal(myDate) + ', ' + myYear + '.');

    console.info(myStr);
    document.getElementsByTagName("p")[0].innerHTML= myStr;
<h3>Lorem ipsum dolor sit</h3>
    <p>Meeting scheduled for 7/19/26, You should receive the email confirmation shortly.</p>
    <h4>Lorem ipsum dolor sit</h4>
<p>lorem ipsum dolor sit</p>

ваш код работает так, как требуется, но когда я добавил еще одну строку в код, чтобы выполнить мои требования, эта строка кода не отражается во внешнем интерфейсе. вот код temp.textContent = "myStr"; Однако требуемый результат, напечатанный в консоли, можно увидеть. Я написал этот фрагмент кода после оператора консоли.

user3376865 19.07.2024 17:39

Попробуйте этот document.getElementsByTagName("p")[0].innerHTML= myStr

Haluk 19.07.2024 17:43

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

Haluk 19.07.2024 17:46

чтобы помочь другим, можете ли вы немного изменить свой код, чтобы добавить еще и год? например, 19 июля 2024 г.

user3376865 19.07.2024 18:10

Я переработал сценарий выше в соответствии с вашим последним комментарием. Можешь проверить еще раз....

Haluk 19.07.2024 18:22

@user3376865; все наладилось?

Haluk 19.07.2024 22:34

Другие вопросы по теме