Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2019, 22:56
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

помочь с функцией
Помогите добавить функцию, которая добавит ноль перед цифрой если число меньше 10ти сразу у всех элементов из списка
['hours', 'minutes', 'seconds', 'date', 'month']

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

в этом скрипте
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta http-equiv="x-ua-compatible" content="ie=edge">
        <title></title>
        <style>
            div {
                font: 14px serif;
                border: 1px solid #ccc;
                padding: 5px;
                margin-bottom: 5px;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div id="hours"></div>
        <div id="minutes"></div>
        <div id="seconds"></div>
        <div id="day"></div>
        <div id="date"></div>
        <div id="month"></div>
        <div id="month_name"></div>
        <div id="year"></div>
        <script>
            var hours = document.getElementById('hours');
            var minutes = document.getElementById('minutes');
            var seconds = document.getElementById('seconds');
            var day = document.getElementById('day');
            var date_name = document.getElementById('date');
            var month = document.getElementById('month');
            var month_name = document.getElementById('month_name');
            var year = document.getElementById('year');
 
            var date = new Date();
 
            hours.innerHTML = date.getHours();
            minutes.innerHTML = date.getMinutes();
            seconds.innerHTML = date.getSeconds();
 
            day.innerHTML = date.toLocaleString(window.navigator.language, { weekday: 'long' });
            date_name.innerHTML = date.getDate();
            month.innerHTML = date.getMonth()+1;
            month_name.innerHTML = date.toLocaleString(window.navigator.language, { month: 'long' });
            year.innerHTML = date.getFullYear();
        </script>
    </body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2019, 23:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Блондинка,
в конец скрипта
[hours, minutes, seconds, date_name, month].forEach(function(el) {
               el.innerHTML = ("0"+ el.innerHTML).slice(-2)
             })

Последний раз редактировалось рони, 12.08.2019 в 00:42.
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2019, 02:54
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

что значат и как работают 43 и 46 строчки, а ты именно window.navigator.language?
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2019, 03:10
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

можно ли заменить (и нужно ли? ) на массивы с названиями дней недели месяцев, чтобы можно было манипулировать окончанием август/августа, строчными и прописными буквами Августа/августа/АВГУСТА, языком русский/украинский/белоруский/литовский/латышский/эстонский
Ответить с цитированием
  #5 (permalink)  
Старый 12.08.2019, 09:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от Блондинка
что значат
выделить незнакомый термин и поискать в гугле.
https://developer.mozilla.org/ru/doc...toLocaleString
это значит форматировать строку в зависимости от языка, window.navigator.language это язык страницы на которой работает скрипт, например ru. остальные параметры смотрите по ссылке.
Ответить с цитированием
  #6 (permalink)  
Старый 12.08.2019, 17:18
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        div {
            font: 14px serif;
            border: 1px solid #ccc;
            padding: 5px;
            margin-bottom: 5px;
            text-align: center;
        }
    </style>
</head>
<body>
    <script type="module">
        let days = ["Воскресенье", "Понедельник", "Вторник",
            "Среда", "Четверг", "Пятница", "Суббота"],
            months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
                "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
        let d = new Date();
        for (let item of [
            ["hours", () => d.getHours()],
            ["minutes", () => d.getMinutes()],
            ["seconds", () => d.getSeconds()],
            ["day", () => days[d.getDay()]],
            ["date", () => d.getDate()],
            ["month", () => d.getMonth() + 1],
            ["month_name", () => months[d.getMonth()]],
            ["year", () => d.getFullYear()]
        ])
            document.getElementById(item[0]).textContent = item[1]();
    </script>
    <div id="hours"></div>
    <div id="minutes"></div>
    <div id="seconds"></div>
    <div id="day"></div>
    <div id="date"></div>
    <div id="month"></div>
    <div id="month_name"></div>
    <div id="year"></div>
</body>
</html>

Почему не показывает компоненты даты ? только пустые дивы...
Ответить с цитированием
  #7 (permalink)  
Старый 12.08.2019, 17:22
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

рони,
лучше подскажи как заменить на массивы в первом посте
Ответить с цитированием
  #8 (permalink)  
Старый 12.08.2019, 17:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от Блондинка
Почему не показывает компоненты даты ?
потому что это код для современных браузеров
Ответить с цитированием
  #9 (permalink)  
Старый 13.08.2019, 00:46
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

рони,
как правильно заменить дни недели и месяцы на массивы в этом скрипте?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                font: 14px serif;
                border: 1px solid #ccc;
                padding: 5px;
                margin-bottom: 5px;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div id="hours"></div>
        <div id="minutes"></div>
        <div id="seconds"></div>
        <div id="day"></div>
        <div id="date"></div>
        <div id="month"></div>
        <div id="month_name"></div>
        <div id="year"></div>
        <script>
            var hours = document.getElementById('hours');
            var minutes = document.getElementById('minutes');
            var seconds = document.getElementById('seconds');
            var day = document.getElementById('day');
            var date_name = document.getElementById('date');
            var month = document.getElementById('month');
            var month_name = document.getElementById('month_name');
            var year = document.getElementById('year');
 
            var date = new Date();
 
            hours.innerHTML = date.getHours();
            minutes.innerHTML = date.getMinutes();
            seconds.innerHTML = date.getSeconds();
 
            day.innerHTML = date.toLocaleString(window.navigator.language, { weekday: 'long' });
            date_name.innerHTML = date.getDate();
            month.innerHTML = date.getMonth()+1;
            month_name.innerHTML = date.toLocaleString(window.navigator.language, { month: 'long' });
            year.innerHTML = date.getFullYear();
            [hours, minutes, seconds, date_name, month].forEach(function(el) {
               el.innerHTML = ("0"+ el.innerHTML).slice(-2)
             })
         </script>
    </body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 13.08.2019, 08:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Блондинка, не дублируй вопросы в разных темах.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция запускается кнопкой, но не запускается другой функцией или событием IndiraVarma Общие вопросы Javascript 6 30.09.2016 14:58
Прошу помочь с функцией Dmitry39 Общие вопросы Javascript 0 04.06.2013 11:44
Несколько сценариев одной функцией Marker Events/DOM/Window 19 19.01.2013 00:40
Как выделить активный пункт меню в моём случаи? может кто помочь? nStyle jQuery 10 11.03.2012 01:51
Как вывести возвращаемое функцией значение не через модальное окно? Bandicoot Общие вопросы Javascript 1 10.03.2011 18:34