Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Odliczanie czasu... kolejny problem
Puzi
post 1.05.2008, 09:20:00
Post #1





Grupa: Zarejestrowani
Postów: 231
Pomógł: 17
Dołączył: 26.08.2007

Ostrzeżenie: (10%)
X----


Witam,
Znalazłem skrypt java do odliczania czasu i nie wiem jak go przerobić żeby był 24 godzinny a nie 12.

Kod do wklejenia na stronę:
Kod
<script language="JavaScript">
TargetDate = "05/01/2008 5:00 PM";
BackColor = "palegreen";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "It is finally here!";
</script>
<script language="JavaScript" src="countdown.js"></script>


Plik countdown.js:
Kod
/*
Author: Robert Hashemian
http://www.hashemian.com/

You can use this code in any manner so long as the author's
name, Web address and this disclaimer is kept intact.
********************************************************
Usage Sample:

<script language="JavaScript">
TargetDate = "05/01/2008 5:00 PM";
BackColor = "palegreen";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "It is finally here!";
</script>
<script language="JavaScript" src="http://scripts.hashemian.com/js/countdown.js"></script>
*/

function calcage(secs, num1, num2) {
   s = ((Math.floor(secs/num1))%num2).toString();
   if (LeadingZero && s.length < 2)
     s = "0" + s;
   return "<b>" + s + "</b>";
}

function CountBack(secs) {
   if (secs < 0) {
     document.getElementById("cntdwn").innerHTML = FinishMessage;
     return;
   }
   DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
   DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
   DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
   DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));

   document.getElementById("cntdwn").innerHTML = DisplayStr;
   if (CountActive)
     setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
}

function putspan(backcolor, forecolor) {
  document.write("<span id='cntdwn' style='background-color:" + backcolor +
                 "; color:" + forecolor + "'></span>");
}

if (typeof(BackColor)=="undefined")
   BackColor = "white";
if (typeof(ForeColor)=="undefined")
   ForeColor= "black";
if (typeof(TargetDate)=="undefined")
   TargetDate = "12/31/2020 5:00 AM";
if (typeof(DisplayFormat)=="undefined")
   DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
if (typeof(CountActive)=="undefined")
   CountActive = true;
if (typeof(FinishMessage)=="undefined")
   FinishMessage = "";
if (typeof(CountStepper)!="number")
   CountStepper = -1;
if (typeof(LeadingZero)=="undefined")
   LeadingZero = true;


CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0)
   CountActive = false;
var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
putspan(BackColor, ForeColor);
var dthen = new Date(TargetDate);
var dnow = new Date();
if(CountStepper>0)
   ddiff = new Date(dnow-dthen);
else
   ddiff = new Date(dthen-dnow);
gsecs = Math.floor(ddiff.valueOf()/1000);
CountBack(gsecs);


Proszę o pomoc bo ja wogóle nie znam się na javie

Ten post edytował Puzi 1.05.2008, 14:20:36
Go to the top of the page
+Quote Post
Sadu2
post 1.05.2008, 10:14:35
Post #2





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


Ale przecież i tak sie wyświetla, że pozostało np

120 dni, 18 godzin, 15 minut itd....

Więc po co go chcesz przerabiać?
Go to the top of the page
+Quote Post
Puzi
post 1.05.2008, 10:23:03
Post #3





Grupa: Zarejestrowani
Postów: 231
Pomógł: 17
Dołączył: 26.08.2007

Ostrzeżenie: (10%)
X----


Bo chce tam gdzie wpisuje date do której ma mi to odliczać chce abym wpisywał czas 24 godzinny a nie jakies tam AM czy PM.
Go to the top of the page
+Quote Post
Sadu2
post 1.05.2008, 10:29:18
Post #4





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


A tak nie działa?

Kod
<script language="JavaScript">
TargetDate = "05/01/2009 24:00";
BackColor = "palegreen";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "It is finally here!";
</script>
Go to the top of the page
+Quote Post
Puzi
post 1.05.2008, 10:36:37
Post #5





Grupa: Zarejestrowani
Postów: 231
Pomógł: 17
Dołączył: 26.08.2007

Ostrzeżenie: (10%)
X----


Nie

Jest takie coś:
Kod
<span id="cntdwn" style="color: navy; background-color: palegreen;">NaN   Days, NaN Hours, NaN Minutes, NaN Seconds.</span>
Go to the top of the page
+Quote Post
Sadu2
post 1.05.2008, 10:38:31
Post #6





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


A u mnie działa:

http://siema.edl.pl/b.php
Go to the top of the page
+Quote Post
Puzi
post 1.05.2008, 14:09:26
Post #7





Grupa: Zarejestrowani
Postów: 231
Pomógł: 17
Dołączył: 26.08.2007

Ostrzeżenie: (10%)
X----


A jak można zrobić takie instrukcje do tego skryptu:
1. Jak liczba dni równa jest 0 to żeby wyświetlało tylko godziny, minuty i sekundy
2. Jak liczba dni równa jest 0 oraz liczba godzin też 0 to żeby wyświetlało tylko minuty i sekundy
3. Jak liczba dni, godzin i minut jest równa 0 to żeby wyświetlało tylko sekundy

Proszę o pomoc
Go to the top of the page
+Quote Post
Cezar708
post 1.05.2008, 14:25:04
Post #8





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


trzeba już kod JavaScript zmienić trochę na Twoje potrzeby:

na przykład, podmień funkcję CountBack(secs) na tę poniżej:

  1. <?php
  2. function CountBack(secs) {
  3. if (secs < 0) {
  4. document.getElementById("cntdwn").innerHTML = FinishMessage;
  5. return;
  6. }
  7. if ( secs < 60 ) { // czyli mniej niż minuta
  8. DisplayFormat = DisplayFormatLessThanMinute;
  9. } else if ( secs < 3600 ) { // czyli mniej niż 1 godzina
  10. DisplayFormat = DisplayFormatLessThanHour;
  11. } else if ( secs < 86400 ) { // czyli mniej niż 1 dzień
  12. DisplayFormat = DisplayFormatLessThanDay;
  13. } 
  14.  
  15. DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
  16. DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
  17. DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
  18. DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));
  19.  
  20. document.getElementById("cntdwn").innerHTML = DisplayStr;
  21. if (CountActive)
  22. setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
  23. }
  24. ?>


a następnie inicjacja skryptu będzie wyglądała tak:

  1. <script language="JavaScript">
  2. TargetDate = "05/01/2009 24:00";
  3. BackColor = "palegreen";
  4. ForeColor = "navy";
  5. CountActive = true;
  6. CountStepper = -1;
  7. LeadingZero = true;
  8. DisplayFormat = "%%D%% dni, %%H%% godzin, %%M%% minut, %%S%% sek.";
  9. FinishMessage = "It is finally here!";
  10. // poniżej dodałem:
  11. DisplayFormatLessThanDay = "%%H%% godzin, %%M%% minut, %%S%% sek."; // wyświetla gdy mniej niż 24 godziny
  12. DisplayFormatLessThanHour = "%%M%% minut, %%S%% sek."; // wyświetla gdy mniej niż 1 godzina
  13. DisplayFormatLessThanMinute = "%%S%% sek."; // wyświetla gdy mniej niż 1 minuta


mam nadzieję że pomogłem

Pozdrawiam
Cezar708
Go to the top of the page
+Quote Post
maniekl2
post 1.05.2008, 20:10:29
Post #9





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


a ja mam pewną prośbe
Mógłby ktoś mi wytłumaczyć jak to wogóle działa, bo moja wiedza o js jest średnia smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:18