Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обратный отсчет от даты (https://javascript.ru/forum/dom-window/57630-obratnyjj-otschet-ot-daty.html)

magnatan 12.08.2015 16:10

Обратный отсчет от даты
 
Здравствуйте! помогите пожалуйста, мне нужно чтоб счетчик отсчитывал указанное католичество дней, от даты указанной!

То есть, дата 01.01.2015 мне нужно чтоб он отсчитал к примеру 30 дней и остановился! каждый день типа осталось 29 дней, на следующий день 28 дней, итд. при перегрузке страницы не менял свои значения!
Формат даты чтоб был 01.(Число) 01.(Месяц) 2015.(год)
На странице будет несколько таких счетчиков, нужно чтоб он именно от даты указанной плясал. а не по id счетчика... Огромное спасибо..

Есть какйто счетчик но не подходит считаем вперед и формат даты не тот(((
<SCRIPT language=JavaScript>

	d0 = new Date('August 01, 2015'); // дата запуска сайта (месяц должен быть на английском!)

	d1 = new Date();

	dt = (d1.getTime() - d0.getTime()) / (1000*60*60*24);

	document.write(' ' + Math.round(dt) + '-й день'); // счетчик дней
</SCRIPT>

magnatan 12.08.2015 17:34

Что не кто не знает?
Или может не поняли?

Все скрипты ведут отсчет до даты! а мне нужно чтоб ОТ даты отсчитал 30 дней и стал, формат даты 01.01.2015

magnatan 12.08.2015 17:38

Ярче пример!

Мужик арендует резиновую бабу!

мол Арендовано 01.01.2015 до конца аренды осталось 30 дней, на следующий 29 дней, итд.
Скрипт сайта ест формат даты 01.01.2015. и не до какой то даты! а 30 дней ОТ даты аренды бабы...

magnatan 12.08.2015 18:10

Вот вроди такого, как формат даты сделать 01.01.2015 ? через точку?
<script  type="text/javascript">
var data = "12/13/2016"// "месяц/день/год" начало отсчёта
document.write(10-1*Math.floor((new Date()-new Date(data))/(24*60*60*1000)))
</script>

Lemme 13.08.2015 01:37

12.13.2016 в таком виде приходит дата?? Если да, то что мешает отредактировать ее?

var data = "12.13.2016".replace(/\./g, '/');
alert(data);

Deff 13.08.2015 03:23

Цитата:

Сообщение от magnatan
а мне нужно чтоб ОТ даты отсчитал 30 дней и стал, формат даты 01.01.2015

Завтра гляну

magnatan 13.08.2015 10:44

Цитата:

Сообщение от Lemme (Сообщение 384001)
12.13.2016 в таком виде приходит дата?? Если да, то что мешает отредактировать ее?

var data = "12.13.2016".replace(/\./g, '/');
alert(data);

------------------------------------------------------
alert(data);
Это убрал потому как какое то уведомление постоянно появляется оно мне не нужно!
-----------------------------------------------------
<script  type="text/javascript">
var data = "13.08.2015".replace(/\./g, '/');// "месяц/день/год" начало отсчёта
document.write(30-1*Math.floor((new Date()-new Date(data))/(24*60*60*1000)))
</script>


В таком ? сегодняшняя дата, должно показывать 30 дней осталось, а показывает 178

Дата приходит в формате ДЕНЬ.МЕСЯЦ.ГОД нужно именно так! и еще приходит и время, как с ним быть? мне оно не нужно! но формат приходит такой 13.08.2015 12:40 вот как мне это все слепить?

Lemme 13.08.2015 13:07

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

        // создаем дату в формате (год, месяц, день).setHours(часы, минуты)
        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));


p.s я лишь учусь, не гоните на меня особо=) бу..

magnatan 13.08.2015 13:13

Цитата:

Сообщение от Lemme (Сообщение 384068)
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));


А как менять с 30 суток ? на 540 дней нужно!!!

и вот так ?
Не работает! не показывает ничего вообще
<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();

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

    dateDiff('13.08.2015 13:00', 540);

</script>

Lemme 13.08.2015 13:17

magnatan,

// Особое внимание - уделите этой строке
dateDiff('13.08.2015 13:00', 540)

p.s разберетесь, ок, не разберетесь ..... (ибо лентяям помогать не хочется).
помните, вы сюда пришли за помощью, а не "требовать", вам никто ничем не обязан.


Часовой пояс GMT +3, время: 23:34.