Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Pulpit

[php] Ile czasu zostało

Rekomendowane odpowiedzi

Potrzebuję zrobić licznik odliczający równo godzinę i odświeżający się co 1s taki jak jest w OGame, Battleknight i innych szitach. Nie, nie robię takiej gry. Chcę informować ludzi, kiedy nastąpi reset ustawień w wersji demo cms'a. Ktoś ma jakieś pomysły?

 

Nie wiem czy to ma wpływ, ale mam dostęp z poziomu cPanelu do Cron Jobsa więc to problemem nie będzie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No zainstalowałem, ale jak to teraz wyświetlić w dowolnym miejscu na mojej stronie? Od razu czas, a nie po kliknięciu?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

w body dajesz onload wywolanie funkcji startujacej licznik

w dowolnym miejscu na stronie umieszczasz diva, ktorego zawartosc jest modyfikowana przy kazdym wywolaniu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ja tam bym sobie tak nie przeciążał serwera... generując strone wygenerowałbym jakiś tam start-time, a potem odświeżał go juz via JS... lecz jak zamierzasz nie miec >10 osob jednoczesnie na stronie, to ajax wystarczy...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak masz mozliwosc to crontaba uzyj. Po co obciazac php bzdetami ;]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Jak masz mozliwosc to crontaba uzyj. Po co obciazac php bzdetami ;]

hmmm... jak?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Bleh, skupilem sie na samym resetowaniu ustawien a nie na powiadomieniu. Sorry ;d

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Na forum webhelp odnalazłem taki skrypt

//head
<script language="JavaScript">
function odlicz()
{

var czas = new Date(2007,5,3,17,00,00);
var dzis = new Date();
var licz = czas.getTime() - dzis.getTime();
var dni = Math.floor(licz / (1000 * 60 * 60 * 24));
var godz = Math.floor(((licz / (1000 * 60 * 60 * 24)) - dni)* 24);
var min = Math.floor(((((licz / (1000 * 60 * 60 * 24)) - dni)* 24) - godz)*60 );
var sek = Math.floor(((((((licz / (1000 * 60 * 60 * 24)) - dni)* 24) - godz)*60 ) - min )*60);

if ( dni > 0)
document.getElementById("jakies_id").innerHTML="Do resetu serwera zostało: " + godz + ":" + min + ":" + sek;
else if ( dni == 0 && godz >=1 )
document.getElementById("jakies_id").innerHTML="Cierpliwości, to już dzisiaj za: " + godz + " godz. i " + min + " min."+ sek + " sek.";
else if ( dni == 0 && godz < 1 && min >=0 )
document.getElementById("jakies_id").innerHTML="Nie spóźnij się, bo za " + min + " min. kolejny odcinek";
else
document.getElementById("jakies_id").innerHTML="Biegnij na film, może jeszcze zdążysz";
}
</script>
//body
<script type="text/javascript">
window.setInterval("odlicz()",1000)
</script>
<div id="jakies_id"></div>

Bezproblemowo zaimplementowałem go do strony jednak nie odlicza mi on godziny tylko nie wiadomo co. Jak to skorygować?

 

Tutaj demo jak to działa kliknij mnie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

moze masz serwer w innej strefie czasowej...? ja bym od JS brał tylko ilość sekund ktora upłyneła od załadowania strony, i to dodawał do tego stałego co php wygenerował

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

IMO lepiej by było tj. proponuje rojmarek, robisz np.:

 

<javascript>
var serverTime = <?php print( $serverTime ); ?>;
var timeLeft = <?php print( $serverTimeLeft); ?>;

function g( )
{
 serverTime++;
 document.form_name.input_name.value = "Na serwerze czas: " + serverTime + "sekund, serwer zresetowanie za: " + ( timeLeft - serverTime ) + "sekund.";

 setTimeout( "g( )", 100 );
};

document.onload = g;
</javascript>

 

Oczywiście można to zrobić ładniej, co do formy wyświetlania czasu to tylko kwestia prze formatowania samych sekund na godziny/minuty/sekund.

 

* kodu nie sprawdziłem, pisany z palca.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
IMO lepiej by było tj. proponuje rojmarek, robisz np.:

 

<javascript>
var serverTime = <?php print( $serverTime ); ?>;
var timeLeft = <?php print( $serverTimeLeft); ?>;

function g( )
{
 serverTime++;
 document.form_name.input_name.value = "Na serwerze czas: " + serverTime + "sekund, serwer zresetowanie za: " + ( timeLeft - serverTime ) + "sekund.";

 setTimeout( "g( )", 100 );
};

document.onload = g;
</javascript>

 

Oczywiście można to zrobić ładniej, co do formy wyświetlania czasu to tylko kwestia prze formatowania samych sekund na godziny/minuty/sekund.

 

* kodu nie sprawdziłem, pisany z palca.

oznaczenie zmiennych moze tutaj chyba wprowadzać troszke w błąd... $serverTimeLeft szczęśliwiej byłoby nazwać $serverResetTime, albo jakos takos... fajny natomiast w tym wypadku pomysł z setTimeout... kod mozna skrocic chyba do

<javascript>
var timeLeft = <?php print( $serverTimeLeft); ?>; //tutaj serverTimeLeft to ilość sekund do restartu

function g( )
{
 timeLeft--;
 document.form_name.input_name.value = "zresetowany za: " + timeLeft+ "sekund";
 setTimeout( "g( )", 100 );
};

document.onload = g;
</javascript>

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobra zrobiłem za Ciebie, zostało Ci tylko skonwertowanie formatu time do ludzkiego formatu czasu. ;)

 

oznaczenie zmiennych moze tutaj chyba wprowadzać troszke w błąd... $serverTimeLeft szczęśliwiej byłoby nazwać $serverResetTime, albo jakos takos... fajny natomiast w tym wypadku pomysł z setTimeout... kod mozna skrocic chyba do [.]

 

Znaczy się co do tych zmiennych nie doczytałem, i myślałem że serwer ma zostać wyłączony. Ale Pulpit chyba sobie poradzi ze zmianą. :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ehh powtórzę się

<html>
<head>	
<script language="JavaScript">
function odlicz() {
		var czas = new Date(2007,5,3,-2,-50,-4);
		var dzis = new Date();
		var licz = czas.getTime() - dzis.getTime();
		var dni = Math.floor(licz / (1000 * 60 * 60 * 24));
		var godz = Math.floor(((licz / (1000 * 60 * 60 * 24)) - dni)* 24);
		var min = Math.floor(((((licz / (1000 * 60 * 60 * 24)) - dni)* 24) - godz)*60 );
		var sek = Math.floor(((((((licz / (1000 * 60 * 60 * 24)) - dni)* 24) - godz)*60 ) - min )*60);
		document.getElementById("jakies_id").innerHTML="Do resetu serwera zostało: " + godz + ":" + min + ":" + sek;
}
</script>
</head>
<body>

<script type="text/javascript">
window.setInterval("odlicz()",1000)
</script>
<div id="jakies_id"></div>

</body>
</html>

jak zmienić ten skrypt, żeby odliczał jedynie 1h od 12 do 13 potem reset licznika i znowu od 13 do 14 itd. reset serwera (ustawień) robię w cronie więc chcę tylko licznik co godzinę odlicza jedną pełną godzinę (najlepiej wg. czasu serwera), bo ten skrypt ciągle mi 24h odlicza a ja chcę jedną godzinę a nie 24

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...