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

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

17.10.2015, 14:05. Показов 1473. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru