С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44

Подскажите как сделать код более аккуратным

17.10.2015, 14:05. Показов 1440. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На одном из своих сайтов использую таймер, задача была сделать таймер цикличным, чтобы каждые три дня он обновлялся заново, я решил сделать привязку ко дню месяца и уже от этого считать, может есть другие, более логичные решения? (за основу был взят таймер http://ruseller.com/lessons.php?rub_id=32&id=1589)
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$(function(){
    var today = new Date(); 
    var my_year = today.getFullYear(); 
    var my_month = today.getMonth(); 
    if((today.getDate()) == 1 || 4 || 7 || 10 || 13 || 16 || 19 || 22 || 25 || 28 || 31) {
        var my_date = today.getDate()+3;
    } else if (((today.getDate())) == 2 || 5 || 8 || 11 || 14 || 17 || 20 || 23 || 26 || 29) {
        alert('Да, верно');
        var my_date = today.getDate()+2;
    } else if (((today.getDate())) == 3 || 6 || 9 || 12 || 15 || 18 || 21 || 24 || 27 || 30) {
        var my_date = today.getDate()+1;
    } 
    
    var note = $('#note'),
        // ts = new Date(2012, 0, 1),
        // устанавливаем отсчет до конца текущих суток
        ts = new Date(my_year, my_month, my_date);
    
    if((new Date()) > ts){
        // Задаем точку отсчета для примера. Пусть будет очередной Новый год или дата через 10 дней.
        // Обратите внимание на *1000 в конце - время должно задаваться в миллисекундах
        ts = (new Date()).getTime() + 10*24*60*60*1000;
    }
        
    $('#countdown').countdown({
        timestamp   : ts,
        callback    : function(days, hours, minutes, seconds){
            
        }
    });
    
});
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2015, 14:05
Ответы с готовыми решениями:

Подскажите, как сделать код более универсальным?
просьба помочь сократить код правильнее сказать переделать в универсальный! ... var elem = document.getElementById('q6'); var...

Сделать html код более читабельным
Допустим, есть textarea с html кодом внутри, и нужно сделать этот код более читабельным, например: Было: <div...

Как сделать код более компактным?
$(document).ready(function(){ var sumNum = parseInt(document.getElementById("digit1").innerText) +...

16
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
17.10.2015, 14:35
Цитата Сообщение от Xenitron Посмотреть сообщение
(((today.getDate())) == 3 || 6 || 9 || 12 || 15 || 18 || 21 || 24 || 27 || 30) {
это тупая строчка, которая сработает в любом случае

Добавлено через 1 минуту
если время будет 3, или если 6 является числом, или если 9 является числом, или если 12 является числом...
это то, что вы написали

Добавлено через 2 минуты
надо вот так
JavaScript
1
([3,6,9,12,15,18,21,24,27,30].indexOf(today.getDate()) != -1) {
Добавлено через 1 минуту
а можно ещё легче
JavaScript
1
!(today.getDate()%3)
1
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44
17.10.2015, 15:01  [ТС]
BANO, а с другими днями как? спасибо за совет

Добавлено через 7 минут
BANO, Я на начальном уровне в js объясните пожалуйста, что значит последняя написанная Вами строчка, и как ее использовать с условием?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
17.10.2015, 15:08
a % b - получить остаток от деления а на b

если a кратно b, то вернётся 0, а !0 == true, то есть условие выполнится только если а кратно b, в противных случаях она выкинет false
0
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44
17.10.2015, 15:09  [ТС]
Разобрался со второй строчкой, теперь все работает так как и задумывалось изначально. Спасибо BANO!
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$(function(){
    var today = new Date(); 
    var my_year = today.getFullYear(); 
    var my_month = today.getMonth(); 
    if ([1,4,7,10,13,16,19,22,25,28,31].indexOf(today.getDate()) != -1)  {
        var my_date = today.getDate()+3;
    } else if ([2,5,8,11,14,17,20,23,26,29].indexOf(today.getDate()) != -1)  {
        var my_date = today.getDate()+2;
    } else if ([3,6,9,12,15,18,21,24,27,30].indexOf(today.getDate()) != -1) {
        var my_date = today.getDate()+1;
    } 
    
    var note = $('#note'),
        // ts = new Date(2012, 0, 1),
        // устанавливаем отсчет до конца текущих суток
        ts = new Date(my_year, my_month, my_date);
    
    if((new Date()) > ts){
        // Задаем точку отсчета для примера. Пусть будет очередной Новый год или дата через 10 дней.
        // Обратите внимание на *1000 в конце - время должно задаваться в миллисекундах
        ts = (new Date()).getTime() + 10*24*60*60*1000;
    }
        
    $('#countdown').countdown({
        timestamp   : ts,
        callback    : function(days, hours, minutes, seconds){
            
        }
    });
    
});
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
17.10.2015, 15:15
а вообще, вместо всей этой хренотени
JavaScript
1
2
3
4
5
6
7
8
    if((today.getDate()) == 1 || 4 || 7 || 10 || 13 || 16 || 19 || 22 || 25 || 28 || 31) {
        var my_date = today.getDate()+3;
    } else if (((today.getDate())) == 2 || 5 || 8 || 11 || 14 || 17 || 20 || 23 || 26 || 29) {
        alert('Да, верно');
        var my_date = today.getDate()+2;
    } else if (((today.getDate())) == 3 || 6 || 9 || 12 || 15 || 18 || 21 || 24 || 27 || 30) {
        var my_date = today.getDate()+1;
    }
можно написать просто
JavaScript
1
my_date=3-(today.getDate()%3)
Добавлено через 1 минуту
короче, если хотите актуальный код, то держите
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$(function(){
    var today = new Date(); 
    var my_year = today.getFullYear(); 
    var my_month = today.getMonth(); 
    var my_date=3-(today.getDate()%3)
 
    var note = $('#note'),
        // ts = new Date(2012, 0, 1),
        // устанавливаем отсчет до конца текущих суток
        ts = new Date(my_year, my_month, my_date);
    
    if((new Date()) > ts){
        // Задаем точку отсчета для примера. Пусть будет очередной Новый год или дата через 10 дней.
        // Обратите внимание на *1000 в конце - время должно задаваться в миллисекундах
        ts = (new Date()).getTime() + 10*24*60*60*1000;
    }
        
    $('#countdown').countdown({
        timestamp   : ts,
        callback    : function(days, hours, minutes, seconds){
            
        }
    });
    
});
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.10.2015, 15:18
принимаем первое января текущего года за начало первых трех суток
тогда задача будет заключаться в определении количества дней, прошедших с начала года N
обновление календаря будет происходить каждый третий день
показываю начало скрипта:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
onload = function ()
{
setInterval (function ()
             {
             var today = new Date;
             var finalMidnight = todayMidnight = new Date (today.getFullYear (), today.getMonth (), today.getDate ());
             var newYearMidnight = new Date (today.getFullYear (), 0, 1);
             var h24 = 24 * 60 * 60 * 1000;
             var N = (todayMidnight.getTime () - newYearMidnight.getTime ()) / h24;
             var d = N % 3;
 
             finalMidnight.setDate (todayMidnight.getDate () + (3 - d));
//today - текущее время
//finalMidnight - время окончания работы таймера
// здесь "рисуете" ваш вывод циферок таймера
// я, извините, такую "каку", как JQuery, ни в руки, ни в рот не беру, потому разбирайтесь с дальнейшим сами
}, 1000);
}
0
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44
17.10.2015, 15:19  [ТС]
BANO, Сделал так, не работает
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$(function(){
    var today = new Date(); 
    var my_year = today.getFullYear(); 
    var my_month = today.getMonth(); 
    var my_date=3-(today.getDate()%3);
 
    
    var note = $('#note'),
        // ts = new Date(2012, 0, 1),
        // устанавливаем отсчет до конца текущих суток
        ts = new Date(my_year, my_month, my_date);
    
    if((new Date()) > ts){
        // Задаем точку отсчета для примера. Пусть будет очередной Новый год или дата через 10 дней.
        // Обратите внимание на *1000 в конце - время должно задаваться в миллисекундах
        ts = (new Date()).getTime() + 10*24*60*60*1000;
    }
        
    $('#countdown').countdown({
        timestamp   : ts,
        callback    : function(days, hours, minutes, seconds){
            
        }
    });
    
});
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
17.10.2015, 15:23
конечно не работает, я забыл про 4 символа
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$(function(){
    var today = new Date(); 
    var my_year = today.getFullYear(); 
    var my_month = today.getMonth(); 
    var my_date=3-((today.getDate()-1)%3)
 
    var note = $('#note'),
        // ts = new Date(2012, 0, 1),
        // устанавливаем отсчет до конца текущих суток
        ts = new Date(my_year, my_month, my_date);
    
    if((new Date()) > ts){
        // Задаем точку отсчета для примера. Пусть будет очередной Новый год или дата через 10 дней.
        // Обратите внимание на *1000 в конце - время должно задаваться в миллисекундах
        ts = (new Date()).getTime() + 10*24*60*60*1000;
    }
        
    $('#countdown').countdown({
        timestamp   : ts,
        callback    : function(days, hours, minutes, seconds){
            
        }
    });
    
});
Добавлено через 1 минуту
kalabuni, там просто хотят с jq плагином поработать, зачем мешать, пусть работают
0
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44
17.10.2015, 15:23  [ТС]
BANO, Все равно считает с 9 дней (по функции что ниже)
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.10.2015, 15:24
Цитата Сообщение от BANO Посмотреть сообщение
там просто хотят с jq плагином поработать, зачем мешать, пусть работают
а кто мешает-то?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
17.10.2015, 15:27
Лучший ответ Сообщение было отмечено Xenitron как решение

Решение

Xenitron, что значит с 9 дней?
просто не понятно

Добавлено через 15 секунд

Не по теме:

Цитата Сообщение от kalabuni Посмотреть сообщение
а кто мешает-то?
я)))



Добавлено через 1 минуту
всё, понял, я забыл про очень важную вещь, я не прибавлял текущую дату

Добавлено через 55 секунд
JavaScript
1
var my_date=3-((today.getDate()-1)%3)+today.getDate();
1
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44
17.10.2015, 15:27  [ТС]
BANO, вот сайт на котором используется этот таймер http://proweblog.ru/lp/# тамвидно что отсчет идет с 10 дней, то-есть выполняется ((new Date()) > ts) и срабатывает ts = (new Date()).getTime() + 10*24*60*60*1000;
0
17.10.2015, 15:29

Не по теме:

Xenitron, а как вы без знания js запилили такой сайт?

0
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44
17.10.2015, 15:33  [ТС]
BANO, webflow
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
17.10.2015, 15:42
Xenitron, тк, последний мой код сработал, с добавлением текущей даты, или нет?

Добавлено через 36 секунд

Не по теме:

Цитата Сообщение от Xenitron Посмотреть сообщение
webflow
вот так и вытесняются мы - web-разработчики

0
3 / 3 / 3
Регистрация: 15.05.2015
Сообщений: 44
18.10.2015, 22:36  [ТС]
BANO, Код сработал Спасибо!
Куда же без вас то, сам разбираюсь в js, в webflow можно создать что то простое, а чтобы делать вещи выходящие за его возможности нужно много знать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2015, 22:36
Помогаю со студенческими работами здесь

Как сделать код более правильным?
Здравствуйте. Сделал сот такую штуку для сайта https://jsfiddle.net/yx608nb3/1/ . Правда, получился костыль. Подскажите, как можно этот код...

Подскажите как сделать слайдер на сайт для 5 и более картинок?
Вот мой код. Работает только когда 4 картинки, у меня на другом сайте другой слайдер, но там тоже только четыре картинки можно подставить....

Подскажите, как сделать визуализацию уравнения с более, чем 3-мя переменными
как сделать визуализацию уравнения с более 3-х переменными? и возможно ли это? создает ли контурные графики? если есть ответы можно...

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

Как переделать код - сделать запрос с двух и более страниц?
Добрый день! Как переделать код (часть скрипта rss.php), чтобы был запрос с двух таблиц. В существующем коде одна таблица - NEWS_TABLE....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru