Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.08.2015, 13:22
Интересующийся
Отправить личное сообщение для magnatan Посмотреть профиль Найти все сообщения от magnatan
 
Регистрация: 12.08.2015
Сообщений: 10

Сообщение от Lemme Посмотреть сообщение
magnatan,
Да причем линьтяй? я не понимаю в яве вообще, пришел за помощью!

<script  type="text/javascript">
function dateDiff(fromDate, daysToEnd) {
        // [dd, mm, yyyy, hh, mm]
        fromDate = fromDate.replace(/[\.\s\:]/g, '/').split('/');
        
        // 86400000 - сутки
        var daysToEnd = daysToEnd * 86400000;

        var start   = new Date(fromDate[2], fromDate[1] - 1, fromDate[0]).setHours(fromDate[3], fromDate[4]) + daysToEnd,
            end     = Date.now();

        return Math.round((start - end) / 86400000);
    }

    alert(dateDiff('13.08.2015 13:00', 30));

</script>


Так какое то уведомление выскакивает в браузере, но на странице ничего не отображается (((
Ответить с цитированием
  #12 (permalink)  
Старый 13.08.2015, 13:24
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

magnatan, если вы пришли за "помощью", то просите помощи, а не готовых решний.

p.s уведомление в браузере - это и есть остаток дней.
https://learn.javascript.ru/uibasic
Ответить с цитированием
  #13 (permalink)  
Старый 13.08.2015, 13:26
Интересующийся
Отправить личное сообщение для magnatan Посмотреть профиль Найти все сообщения от magnatan
 
Регистрация: 12.08.2015
Сообщений: 10

Сообщение от Lemme Посмотреть сообщение
magnatan, если вы пришли за "помощью", то просите помощи, а не готовых решний.

p.s уведомление в браузере - это и есть остаток дней.
А можно просто чтоб текстом? потому как будет несколько кодов на одной странице! пожалуйста! спасибо
Ответить с цитированием
  #14 (permalink)  
Старый 13.08.2015, 13:29
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

magnatan, гуглите

// это нужно выводить.
dateDiff('13.08.2015 13:00', 30);


ибо так вы не научитесь, а если и не хотите научится, то лучше на фриланс идите, там вам все сделают.
Ответить с цитированием
  #15 (permalink)  
Старый 13.08.2015, 13:31
Интересующийся
Отправить личное сообщение для magnatan Посмотреть профиль Найти все сообщения от magnatan
 
Регистрация: 12.08.2015
Сообщений: 10

Сообщение от Lemme Посмотреть сообщение
magnatan, гуглите

// это нужно выводить.
dateDiff('13.08.2015 13:00', 30);


ибо так вы не научитесь, а если и не хотите научится, то лучше на фриланс идите, там вам все сделают.
Методом тыка подобрал, вот так мне нужно было!

<script  type="text/javascript">
function dateDiff(fromDate, daysToEnd) {
        // [dd, mm, yyyy, hh, mm]
        fromDate = fromDate.replace(/[\.\s\:]/g, '/').split('/');
        
        // 86400000 - сутки
        var daysToEnd = daysToEnd * 86400000;

        var start   = new Date(fromDate[2], fromDate[1] - 1, fromDate[0]).setHours(fromDate[3], fromDate[4]) + daysToEnd,
            end     = Date.now();

        return Math.round((start - end) / 86400000);
    }

    document.write (dateDiff('13.08.2015 13:00', 540));

</script>


СПАСИБО!!! ВАМ ОГРОМНОЕ!!!
Ответить с цитированием
  #16 (permalink)  
Старый 13.08.2015, 13:33
Интересующийся
Отправить личное сообщение для magnatan Посмотреть профиль Найти все сообщения от magnatan
 
Регистрация: 12.08.2015
Сообщений: 10

Сообщение от magnatan Посмотреть сообщение
Методом тыка подобрал, вот так мне нужно было!

<script  type="text/javascript">
function dateDiff(fromDate, daysToEnd) {
        // [dd, mm, yyyy, hh, mm]
        fromDate = fromDate.replace(/[\.\s\:]/g, '/').split('/');
        
        // 86400000 - сутки
        var daysToEnd = daysToEnd * 86400000;

        var start   = new Date(fromDate[2], fromDate[1] - 1, fromDate[0]).setHours(fromDate[3], fromDate[4]) + daysToEnd,
            end     = Date.now();

        return Math.round((start - end) / 86400000);
    }

    document.write (dateDiff('13.08.2015 13:00', 540));

</script>


СПАСИБО!!! ВАМ ОГРОМНОЕ!!!
ахахахааа только оно вперед дни счетает, а надо чтоб минусовало дни! обратно отсчитывало ))))))


АНЕ ВСЕ НОРМ! СПАСИБО ТО Я ОШИБСЯ

Последний раз редактировалось magnatan, 13.08.2015 в 13:38.
Ответить с цитированием
  #17 (permalink)  
Старый 13.08.2015, 15:58
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Делать было нечего, мб понадобится =)

/**
 * @param  {[string]} fromDate  [Дата, от которой нужно начинать отсчет дней. Образец - 13.08.2015 13:00]
 * @param  {[number]} daysToEnd [Кол-во дней]
 * @return {[object]}           [годы, месяцы, дни, часы, минуты, секунды]
 */
function dateDiff(fromDate, daysToEnd) {
        // [dd, mm, yyyy, hh, mm]
        fromDate = fromDate.replace(/[\.\s\:]/g, '/').split('/');
        
        // 86400000 - сутки
        var daysToEnd = daysToEnd * 86400000;

        // start = new Date(год, месяц, день).setHours(часы, минуты)
        var start   = new Date(fromDate[2], fromDate[1] - 1, fromDate[0]).setHours(fromDate[3], fromDate[4]) + daysToEnd,
            end     = Date.now(),
            diff    = (start - end) / 86400000;

        var years   = diff / 365,
            months  = (years - Math.floor(years)) * 12,
            days    = (months - Math.floor(months)) * 30,
            hours   = (days - Math.floor(days)) * 24,
            minutes = (hours - Math.floor(hours)) * 60,
            seconds = (minutes - Math.floor(minutes)) * 60;

        return {
            years:      Math.floor(years),
            months:     Math.floor(months),
            days:       Math.floor(days),
            hours:      Math.floor(hours),
            minutes:    Math.floor(minutes),
            seconds:    Math.floor(seconds)
        };
    }

    /**
     * ВОТ ТАК ВОТ ИСПОЛЬЗОВАТЬ
     */

    var myDataDiff = dateDiff('13.08.2015 13:00', 540);

    // сколько осталось лет
    myDataDiff.years;
    // сколько осталось месяцев
    myDataDiff.months; 
    // сколько осталось дней
    myDataDiff.days;
    // сколько осталось часов
    myDataDiff.hours;
    // сколько осталось минут
    myDataDiff.minutes;
    // сколько осталось секунд
    myDataDiff.seconds;


    /**
     * Это лишь пример, на него даже не смотрите (строка ниже)
     */
    alert(JSON.stringify(myDataDiff).replace(/[\{\}\"]/g, '').replace(/\,/g, '\r\n'));
Ответить с цитированием
  #18 (permalink)  
Старый 13.08.2015, 16:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Вариант:

//Установка:
<script type="text/javascript">
//Установка счетчиков:
function addСount(str,del) {
  var stor = window.localStorage;
  var Tday = 1000*60*60*24; //День в ms;
  str=str.split(',');
  if(str.length!=4) return false; var arr;
  if((arr=str[2].split('.')).length!=3) return false;
  str = str[0]+','+str[1]+','+ str[2]+','+(+new Date(arr[2],arr[1]-1,arr[0])+str[3]*Tday);
  var bound = ';\n'; //Разделитель записей;
  var strg = stor["coutArray"];//strg=''
  if(!!strg)strg = strg.replace(str+bound,'');
  if(del){ stor["coutArray"] = strg; return [true, "Запись удалена"];}
  if(!strg){strg='';stor["coutArray"]='';}
  stor["coutArray"]= strg + str+ bound;
  return stor["coutArray"];
};
//Формат данных:
//Имя, уточняющая запись, Дата отсчета, Дельта T(дней)//
var newCount = "Васе,до конца соместной жизни,08.08.2015,30";
addСount(newCount);
var newCount = "Диме,до завершения погашения ипотеки,02.08.2015,25";
addСount(newCount);
var newCount = "Коле,до конца аренды резиновой бабы,17.08.2015,18";
alert(addСount(newCount))
</script>



//Вывод результов:
<div id="out-count-write"></div>
<script type="text/javascript">
//Вывод результов счетчиков:
function writeStorCount() {
  var last_Phrase = " - Ваше время Истекло!"
  var stor = window.localStorage,Tday = 1000*60*60*24,bound = ';\n';
  var strg = stor["coutArray"],arrCount,i;
  if(!strg) return false;
  arrCount = strg.split(bound);
  var lng = arrCount.length - 1;
  for(i=0; i<lng; i++){
    var arr = arrCount[i].split(',');//alert(arr)
    var delta = parseInt((+arr[3]-(+new Date()))/Tday);
    if(delta<0) return false;
    var test = delta%10;
    var day='дней'; if(test==1)day='дeнь';if(test>1&&test<5)day='дня';
    if(delta>10&&delta<21)day='дней';
    var str = arr[0]+' '+arr[1]+ ' осталось '+ delta +' '+ day + '<br>';
    if(delta==0)str = arr[0] + last_Phrase + '<br>';
    document.getElementById('out-count-write').innerHTML+=str;
  }
};
writeStorCount()
</script>

Последний раз редактировалось Deff, 13.08.2015 в 16:20.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обратный отсчет jet2 Общие вопросы Javascript 5 19.12.2014 05:33
Обратный отсчет до даты с учетом часовых зон royksopp Flash 0 25.09.2013 18:25
jQuery Timer - обратный отсчет времени в 10 минут adax jQuery 1 01.11.2011 14:54
Обратный отсчет времени tenorica Общие вопросы Javascript 2 19.04.2011 23:30
Многократный обратный отсчет sultan.khayrulin Общие вопросы Javascript 1 30.05.2010 22:41