Показать сообщение отдельно
  #56 (permalink)  
Старый 04.12.2019, 17:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Чтобы не оперировать аргументами как объектами, перепишите функцию форматирования даты так:

function formatDate(date, opt = 'full') {
    var format = {
        full: {weekday: "long", day: "numeric", month: "long", year: "numeric"},
        brief: {day: "numeric", month: "long", year: "numeric"},
        day: {weekday: "long"}    
    };
    
    return date.toLocaleDateString("ru", format[opt] || format.full).replace(/^.?|,/g, function(v, i) {
        return !i ? v.toUpperCase() : '<br>'
    });
}


А далее вызывайте ее с параметром нужным когда это требуется (когда это нужно, вам виднее):

<p id="full"></p>
<p id="brief"></p>
<p id="day"></p>

<script>
function formatDate(date, opt = 'full') {
    var format = {
        full: {weekday: "long", day: "numeric", month: "long", year: "numeric"},
        brief: {day: "numeric", month: "long", year: "numeric"},
        day: {weekday: "long"}    
    };
    
    return date.toLocaleDateString("ru", format[opt] || format.full).replace(/^.?|,/g, function(v, i) {
        return !i ? v.toUpperCase() : '<br>'
    });
}

//какая-то полученная дата, здесь, в примере, это текущая
var dt = new Date();

//нужно получить полное представление этой даты, получаем
document.getElementById("full").innerHTML = formatDate(dt);

//нужно получить краткое представление этой даты, получаем
document.getElementById("brief").innerHTML = formatDate(dt, 'brief');

//нужно получить только день недели этой даты, получаем
document.getElementById("day").innerHTML = formatDate(dt, 'day');
</script>

Последний раз редактировалось laimas, 04.12.2019 в 18:58.
Ответить с цитированием