Odliczanie czasu do...

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
Zibo
Posty: 12
Rejestracja: pn cze 11, 2007 1:38 am

Odliczanie czasu do...

Post autor: Zibo »

Czy mógłby mi ktoś pomóc? Mam skrypt odliczania czasu, który działa elegancko jesli liczy że np. minęło 26 dni w tym miesiącu, ale jak ustawię datę do przodu - 2008-01-01 to równiez liczy że np. do końca roku pozostało 36 dni x godzin x minut x sekund, ale wszystko pokazuje na minusie..

oto link do strony gdzie zrobiłem to odliczanie -> www.lordzibo.cba.pl

a tu cała zawartość pliku index.htm
<html>
<br><br><br><br><br><br>
<head>




<center>


<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Odliczanie</title>
</head>

<body bgcolor="#0057AE">

</body>


<script language="JavaScript1.2">

//Dynamic countup Script- © Dynamic Drive (www.dynamicdrive.com)
//For full source code, 100's more DHTML scripts, and TOS,
//visit http://www.dynamicdrive.com

function setcountup(theyear,themonth,theday){
yr=theyear;mo=themonth;da=theday
}

//////////CONFIGURE THE countup SCRIPT HERE//////////////////

//STEP 1: Configure the date to count up from, in the format year, month, day:
//This date should be less than today
setcountup(2008,1,1)

//STEP 2: Configure text to be attached to count up
var displaymessage="<br><br>pozostało do końca roku!"

//STEP 3: Configure the below 5 variables to set the width, height, background color, and text style of the countup area
var countupwidth='99%'
var countupheight='20px' //applicable only in NS4
var countupbgcolor=''
var opentags='<font color="yellow" size="10" face="Verdana"><small>'
var closetags='</small></font>'

//////////DO NOT EDIT PASS THIS LINE//////////////////

var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
var crosscount=''

function start_countup(){
if (document.layers)
document.countupnsmain.visibility="show"
else if (document.all||document.getElementById)
crosscount=document.getElementById&&!document.all?document.getElementById("countupie") : countupie
countup()
}

if (document.all||document.getElementById)
document.write('<span id="countupie" style="width:'+countupwidth+'; background-color:'+countupbgcolor+'"></span>')

window.onload=start_countup


function countup(){
var today=new Date()
var todayy=today.getYear()
if (todayy < 1000)
todayy+=1900
var todaym=today.getMonth()
var todayd=today.getDate()
var todayh=today.getHours()
var todaymin=today.getMinutes()
var todaysec=today.getSeconds()
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
paststring=montharray[mo-1]+" "+da+", "+yr
dd=Date.parse(todaystring)-Date.parse(paststring)
dday=Math.floor(dd/(60*60*1000*24)*1)
dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)

if (document.layers){
document.countupnsmain.document.countupnssub.document.write(opentags+dday+ " dni, "+dhour+" godzin, "+dmin+" minut i "+dsec+" sekund "+displaymessage+closetags)
document.countupnsmain.document.countupnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+dday+ " dni, "+dhour+" godzin, "+dmin+" minut i "+dsec+" sekund "+displaymessage+closetags

setTimeout("countup()",1000)
}
</script>
<span id="liveclock" style="position:absolute;left:0;top:0;">
</span>



<ilayer id="countupnsmain" width=&{countupwidth}; height=&{countupheight}; bgColor=&{countupbgcolor}; visibility=hide><layer id="countupnssub" width=&{countupwidth}; height=&{countupheight}; left=0 top=0></layer></ilayer></body>
</center>
</html>
A może ma ktoś lepszy skrypt?[/quote]
vloq
Nowy
Nowy
Posty: 99
Rejestracja: wt kwie 03, 2007 12:39 am
Lokalizacja: Kraków
Kontakt:

Re: Odliczanie czasu do...

Post autor: vloq »

W JS nie pisze, ale przypuszczam ze znajdziesz tam funkcje abs - (wartość bezwzględna), ktora usunie minusa. Ewentualnie mozesz pomnozyc dane wynikowe *(-1).. jesli tylko o to chodzi.
Zibo
Posty: 12
Rejestracja: pn cze 11, 2007 1:38 am

Re: Odliczanie czasu do...

Post autor: Zibo »

Kompletnie nie wiem o co chodzi :(
atom
Nowy
Nowy
Posty: 145
Rejestracja: wt gru 20, 2005 1:55 pm
Kontakt:

Re: Odliczanie czasu do...

Post autor: atom »

Tak na pierwszy rzut oka, wystarczy chyba zamienić linię:

Kod: Zaznacz cały

dd=Date.parse(todaystring)-Date.parse(paststring)
na linie:

Kod: Zaznacz cały

var d1 = Date.parse(todaystring);
var d2 = Date.parse(paststring);
var dd = d1>d2 ? d1-d2 : d2-d1;
Sprawdz czy po zmianie masz dobre wyniki...
Zibo
Posty: 12
Rejestracja: pn cze 11, 2007 1:38 am

Re: Odliczanie czasu do...

Post autor: Zibo »

atom pisze:Tak na pierwszy rzut oka, wystarczy chyba zamienić linię:

Kod: Zaznacz cały

dd=Date.parse(todaystring)-Date.parse(paststring)
na linie:

Kod: Zaznacz cały

var d1 = Date.parse(todaystring);
var d2 = Date.parse(paststring);
var dd = d1>d2 ? d1-d2 : d2-d1;
Sprawdz czy po zmianie masz dobre wyniki...
Genialnie kolego atom!

Jest idealnie, dzięki za pomoc, pozdrawiam :-D :-D :-D
ODPOWIEDZ