Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2023, 10:58
Аспирант
Отправить личное сообщение для Volonter Посмотреть профиль Найти все сообщения от Volonter
 
Регистрация: 18.01.2011
Сообщений: 93

Нужна помощь с простейшим календариком
Всем привет, парни прошу помочь с простейшим календарем на JS. Есть 2 кнопки, "Назад" и "Вперед" и слой с выводом текущей даты в формате "Вторник, 14 февраля 2023 года", всего то и нужно, чтобы при нажатии кнопок в слое менялась дата соответствено Назад - 13, 12, 11 февраля, вперед 15, 16, 17 и т.д. Главное, чтобы перелистывание было бесконечным, то есть можно долистать хоть до 1900-го года, хоть до 2250. Заранее благодарю! З.Ы. Календарей в сети полно, а вот такого не нашел, а самому с датами сложно в JS
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2023, 13:09
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

<body>
<button id="back">&lt;</button>
<span id="date"></span>
<button id="forward">&gt;</button>

<script>
	const msinday = 24*60*60*1000;
	let curday = Date.now();
	
	const sdate = document.getElementById('date')
	const outdate = (date) => {
		const opt= { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
		const str = new Intl.DateTimeFormat('ru', opt).format(new Date(date))
		sdate.textContent = str
	}
	document.getElementById('back')
		.addEventListener('click', ()=> {curday -= msinday; outdate(curday)});
	document.getElementById('forward')
		.addEventListener('click', ()=> {curday += msinday; outdate(curday)});
		
	outdate(curday);	
</script>
</body>
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2023, 15:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

как вариант ...
<meta charset="utf-8">
    <button id="back">&lt;</button>
    <span id="date"></span>
    <button id="forward">&gt;</button>
    <script>
        let curday = new Date();
        let date = curday.getDate();
        const sdate = document.getElementById('date');
        const opt = {
            weekday: 'long',
            year: 'numeric',
            month: 'long',
            day: 'numeric'
        };
        const intl = new Intl.DateTimeFormat('ru', opt);
        const outdate = (up = 0) => {
            curday.setDate(date + up);
            date = curday.getDate();
            sdate.textContent = intl.format(curday)
        }
        document.getElementById('back')
            .addEventListener('click', () => outdate(-1));
        document.getElementById('forward')
            .addEventListener('click', () => outdate(+1));
        outdate();
    </script>
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2023, 08:53
Аспирант
Отправить личное сообщение для Volonter Посмотреть профиль Найти все сообщения от Volonter
 
Регистрация: 18.01.2011
Сообщений: 93

Парни спасибо огромное! Оба варианта приняты на вооружение)) К сожалению, не могу никому плюсануть, система требует, чтобы плюсики ставились не только voraa и рони
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь! surin.89 jQuery 72 23.12.2020 16:03
React нужна помощь dewembas Библиотеки/Тулкиты/Фреймворки 19 14.12.2020 01:44
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 23:33
Нужна помощь по слайдеру seoguru Работа 3 28.01.2013 22:02
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17