2015-11-16 6 views
1

нормально У меня есть сценарий таймера, который отсчитывает и подается дата в следующем формате:Как сделать переменную JavaScript динамическим для таймера

var year="2015";  

var month="11";  

var day="18"; 

Я пытаюсь понять, как динамически заполнить вышеуказанную переменные таким образом, чтобы таймер сбрасывается каждый раз в 8 вечера. Так на Wed 18, 2015 эти переменные будут динамически меняться в:

var year="2015"; 

var month="11";  

var day="25"; 

и продолжайте идти или это просто лучше иметь пользовательский ввод даты в форме, чтобы заполнить эти переменные с правильной информацией. Я бы предпочел, чтобы все было автоматически, хотя, если возможно, конечно.

скрипт, который использует переменные:

/* 
 
Count down until any date script- 
 
By JavaScript Kit (www.javascriptkit.com) 
 
Over 200+ free scripts here! 
 
Modified by Robert M. Kuhnhenn, D.O. 
 
on 5/30/2006 to count down to a specific date AND time, 
 
on 10/20/2007 to a new format, and 1/10/2010 to include 
 
time zone offset. 
 
*/ 
 

 
var current="Citadel has reset!"; //-->enter what you want the script to display when the target date and time are reached, limit to 20 characters 
 

 
var year="2015"; //-->Enter the count down target date YEAR 
 

 
var month="11";  //-->Enter the count down target date MONTH 
 

 
var day="18";  //-->Enter the count down target date DAY 
 

 
var hour="22";  //-->Enter the count down target date HOUR (24 hour clock) 
 

 
var minute="00"; //-->Enter the count down target date MINUTE 
 

 
var tz=-5;  //-->Offset for your timezone in hours from UTC (see http://wwp.greenwichmeantime.com/index.htm to find the timezone offset for your location) 
 

 
// DO NOT CHANGE THE CODE BELOW! 
 
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); 
 

 
function countdown(yr,m,d,hr,min){ 
 

 
\t theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min; 
 

 
\t var today=new Date(); 
 

 
\t var todayy=today.getYear(); 
 

 
\t if (todayy < 1000) {todayy+=1900;} 
 

 
\t var todaym=today.getMonth(); 
 

 
\t var todayd=today.getDate(); 
 

 
\t var todayh=today.getHours(); 
 

 
\t var todaymin=today.getMinutes(); 
 

 
\t var todaysec=today.getSeconds(); 
 

 
\t var todaystring1=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec; 
 

 
\t var todaystring=Date.parse(todaystring1)+(tz*1000*60*60); 
 

 
\t var futurestring1=(montharray[m-1]+" "+d+", "+yr+" "+hr+":"+min); 
 

 
\t var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60)); 
 

 
\t var dd=futurestring-todaystring; 
 

 
\t var dday=Math.floor(dd/(60*60*1000*24)*1); 
 

 
\t var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1); 
 

 
\t var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1); 
 

 
\t var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1); 
 

 
\t if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=0){ 
 

 
\t \t document.getElementById('count2').innerHTML=current; 
 

 
\t \t document.getElementById('count2').style.display="inline"; 
 

 
\t \t document.getElementById('count2').style.width="390px"; 
 

 
\t \t document.getElementById('dday').style.display="none"; 
 

 
\t \t document.getElementById('dhour').style.display="none"; 
 

 
\t \t document.getElementById('dmin').style.display="none"; 
 

 
\t \t document.getElementById('dsec').style.display="none"; 
 

 
\t \t document.getElementById('days').style.display="none"; 
 

 
\t \t document.getElementById('hours').style.display="none"; 
 

 
\t \t document.getElementById('minutes').style.display="none"; 
 

 
\t \t document.getElementById('seconds').style.display="none"; 
 

 
\t \t document.getElementById('spacer1').style.display="none"; 
 

 
\t \t document.getElementById('spacer2').style.display="none"; 
 

 
\t \t return; 
 

 
\t }else { 
 

 
\t \t document.getElementById('count2').style.display="none"; 
 

 
\t \t document.getElementById('dday').innerHTML=dday; 
 

 
\t \t document.getElementById('dhour').innerHTML=dhour; 
 

 
\t \t document.getElementById('dmin').innerHTML=dmin; 
 

 
\t \t document.getElementById('dsec').innerHTML=dsec; 
 

 
\t \t setTimeout("countdown(theyear,themonth,theday,thehour,theminute)",1000); 
 

 
\t } 
 

 
}

+0

Показать сценарий таймера, в который вы сейчас отправляете аргументы год, месяц и день. – Shaun

ответ

1

Вы можете использовать Date объект в JavaScript для этого.

Когда таймер срабатывает вы можете сделать следующее:

var date = new Date(year, month, day); 

date.setDate(date.getDate() + 7); 

year = date.getFullYear().toString(); 
month = date.getMonth().toString(); 
day = date.getDate().toString(); //Note: not date.getDay() even though that seems more correct. 

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

+0

Спасибо за ваше время. Я сделаю это! –

Смежные вопросы