[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Время
Stasonix
Такое дело получилось, нужно установить новое время, мне трундовато объяснить ситуацию в словах, так что давайте сразе к коду перейду:

<div id="someDay"></div>


var startTimeId;

var zDate = new Date();

function startTime(){
seconds = zDate.getSeconds();
minutes = zDate.getMinutes();

startTimeID = setInterval(function(){

seconds++;

if(seconds>59) { seconds = 0; }

$('#someDay').html('seconds: '+seconds+' minutes: '+minutes);

},1000);

}

startTime();

$('#someDay').click(function(){


clearInterval(startTimeID);

zDate.setSeconds(45);
zDate.setMinutes(30);

startTime();


});


jsfiddle.net рулит: http://jsfiddle.net/Stasonix/PPhnG/

при клике как должно быть вам видно из листинга устанавливаются новые секунды и новые минуты, собственно говоря здесь может быть установлено все что имеет тип Date и может быть установлено.

итого, что имеем:

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

Вопрос возможно ли сделать их "явно" новыми, т.е. чтобы отсчет от нового времени отображался так же как и секунды, т.е. не статично.

Хух, надеюсь что объяснил так что вы поймете.

п.с. секунды я сделал как инкремент ++, но это не выход, это скорее больше для понимания того как это должно работать.



Спустя 6 часов, 40 минут, 50 секунд (11.06.2012 - 06:12) redreem написал(а):
я мало что понял из того что же всетаки требуется, единственное скажу, что интервал в 1000ms будет срабатывать вовсе не каждую секунду, а "поразному". поэтому полюбому нужен контроль относительно системного времени.

Спустя 6 часов, 16 минут, 4 секунды (11.06.2012 - 12:29) Stasonix написал(а):
не надо контроль, мне атомная точность ни к чему, просто запустить fiddle и подождать 1 мин. и вы увидите что секунды изменяются, а минуты стоят. Но это еще пол беды, при клике нужно установить как-бы новый отсчет (не установить время на пк пользователя, как это мне на других форумах отвечают, а именно в самом скрипте установить новый отсчет). Просто задачка из цикла "это что-то новое" поэтому мало кто понимает вообще о чем речь.

Спустя 21 минута, 13 секунд (11.06.2012 - 12:50) redreem написал(а):
ну вот так работает:

var startTimeId;

function startTime(){

zDate = new Date();

seconds = zDate.getSeconds();
minutes = zDate.getMinutes();

startTimeID = setInterval(function(){

seconds++;
if (seconds > 59) {

seconds = 0;

minutes++;
if (minutes > 59) {

minutes = 0;

}
}


$('#someDay').html('seconds: '+seconds+' minutes: '+minutes);

},1000);

}

startTime();

$('#someDay').click(function(){


clearInterval(startTimeID);

zDate.setSeconds(45);
zDate.setMinutes(30);

startTime();

});

Спустя 22 минуты, 25 секунд (11.06.2012 - 13:12) Stasonix написал(а):
я тоже так сначала думал выход, но часы, годы, месяца, дни недели все связать надо и т.п. вот в чем "подвох", грамотному кодеру это под силу, на сколько мне это под силу... надеюсь что разберусь.

Спустя 15 минут, 22 секунды (11.06.2012 - 13:28) redreem написал(а):
сформулируй задачу более конкретно. пока ниче не понятно.

Спустя 6 минут, 12 секунд (11.06.2012 - 13:34) Stasonix написал(а):
Вот уже проясняется:


var startTimeId;

var zDate = new Date();

function startTime(){

seconds = zDate.getSeconds();
minutes = zDate.getMinutes();
hours = zDate.getHours();

startTimeID = setInterval(function(){

seconds++;

if(seconds>59) { seconds = 0;

minutes++;

if (minutes > 59) {

minutes = 0;

hours++;

if ( hours > 23 ) {

hours = 0;

}

}

}


$('#someDay').html(' hours: '+hours+' min: '+minutes+ ' sec: '+seconds);

},1000);

}

// starting our time
startTime();

// click on the element to set new seconds and minutes
$('#someDay').click(function(){


clearInterval(startTimeID);

zDate.setSeconds(45);
zDate.setMinutes(30);

startTime();


});
&
#8203;


а задача такая сделать чтобы при клике установилось новое время, там будет еще дата, год, месяц, день недели и отсчет велся именно от новой даты.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.