Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odliczanie czasu od do
Forum PHP.pl > Forum > Przedszkole
uczaj21
Witam serdecznie wszystkich.Mam pewien problem zwiazany ze skryptem w technologi
hp.
Niewiem jak za niego sie wziasc jestem poczatkujacym a chodzi mi o skrypt ktory 
odlicza godziny minuty i sec od godziny 8 rano do 20 czyli np kiedy jest godzina 8 rano to odlicza godziny do 20 czyli np "8rano do zamkniecia pozostalo 12 godzin". 
a kiedy minie 20 to odlicza godziny do 8 rano nastepnego dnia np "do otwarcia pozostalo 12 godz".Jeszcze jedno sklep mam otwarty od pon do soboty wiec kiedy nadeszla by ni
dziela skrypt odliczal by godziny otwarcia do godz 8 rano w pon.Prosze o pomoc s
ypcik
 potrzebny mi jest do mojej strony zwiazanej z moim sklepem czekam na odpowiedz 
 pozdrawiam
Daimos
nie wiem jak inni, ale ja osobiscie nie znam technologii HP, a jedynie taka firme ktora robi drukarki snitch.gif
domyslam sie, ze chodzilo Ci o JS (Javascript), a skryptow do odliczania jest miliony gotowych, darmowych, wystarczy pogadac z google - nie boj sie, nie ugryzie winksmiley.jpg
uczaj21
oczywiscie kazdy moze sie domyslec ze pomylilem sie jak pisalem oczywiscie php
Daimos
w php to zapoznaj sie z funkcja:
time" title="Zobacz w manualu PHP" target="_manual
date" title="Zobacz w manualu PHP" target="_manual
-> mktime" title="Zobacz w manualu PHP" target="_manual
i nie powinienes miec problemow

btw. sory ze pisalem o JS, ale jak przeczytalem ze chodzi o odliczanie, sam sobie momentalnie pomyslalem o Javascript winksmiley.jpg wkoncu tylko z JS mozesz dynamicznie odliczac
Cezar708
hmm jeśli w PHP to proponuję tak:
  1. <?php
  2. if ( date("D") == "Sun" ){
  3. // 28800 = 8godzin * 3600sekund
  4. $nextOpenTime = strtotime("next monday")+28800; 
  5. } else {
  6. // to nie jest niedziela
  7. $hour = date("G");
  8. if ( $hour < 8 ){
  9. // w przeciwnym wypadku otwarcie jest o 8:00
  10. $nextOpenTime = strtotime("today") + 28800;
  11. } elseif ( $hour < 20 ){
  12. // miedzy 8 a 20 nastepne otwarcie o 20:00
  13. // 72000 = 20 * 3600
  14. $nextOpenTime = strtotime("today") + 72000;
  15. } else {
  16. // jezeli jest po 20 to otwarcie dnia nazstepnego o 8:00
  17. $nextOpenTime = strtotime("tomorrow") + 28800;
  18. }
  19. }
  20.  
  21. echo "data nastepnego otwarcia:".date("Y-m-d H:i", $nextOpenTime);
  22. ?>
uczaj21
prosze o konkretny kod.Przegladalem google tak sa skrypty odliczajace ale wiedz ze nigdy nie znajdziesz takiego ktory zaspakajal by twoje potrzeby.Podales mi funkcje i myslisz ze poradze sobie i dam rade z tym wszystkim co uwzglednilem w skrypcie questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif? z php mialem doczynienia z 1 misiac a puzniej mialem przerwe.Potrzebna mi konkretna pomoc z wyjasnieniami.
Cezar708
Cytat(uczaj21 @ 18.01.2008, 15:28:30 ) *
prosze o konkretny kod. (...) Potrzebna mi konkretna pomoc z wyjasnieniami.


hmm... a ja w powyższym poście nie spełniłem Twoich wymagań?
uczaj21
dzieki cezar 78 kidy pisales mi posta ja edytowalem mojego zaraz wypruboje twoj skrypt

nie o to mi chodzilo cezar 78 kiedy uruchomilem twoj kod wyswietlil mi sie" data nastepnego otwarcia:2008-01-19 11:38" a chodzilo mi o to iz powinien wyswietlac ile jeszcze godzin do zamkniecia czyli jest 15 40 to powinien wyswietlic do zamkniecia pozostalo 4 i 20 min
Cezar708
oj wystarczy lekko przerobić:

  1. <?php
  2. if ( date("D") == "Sun" ){
  3. // 28800 = 8godzin * 3600sekund
  4. $nextOpenTime = strtotime("next monday")+28800; 
  5. } else {
  6. // to nie jest niedziela
  7. $hour = date("G");
  8. if ( $hour < 8 ){
  9. // w przeciwnym wypadku otwarcie jest o 8:00
  10. $nextOpenTime = strtotime("today") + 28800;
  11. } elseif ( $hour < 20 ){
  12. // miedzy 8 a 20 nastepne otwarcie o 20:00
  13. // 72000 = 20 * 3600
  14. $nextOpenTime = strtotime("today") + 72000;
  15. } else {
  16. // jezeli jest po 20 to otwarcie dnia nazstepnego o 8:00
  17. $nextOpenTime = strtotime("tomorrow") + 28800;
  18. }
  19. }
  20.  
  21. echo "pozostało czasu: ".date("H:i:s", $secToEnd-3600);
  22. ?>
uczaj21
cos nie tak z kodem wyswietla sie blad Warning: unexpected error in date() in c:\apache\htdocs\czas.php on line 36
pozostało czasu:
Cezar708
Cytat(uczaj21 @ 18.01.2008, 16:44:01 ) *
cos nie tak z kodem wyswietla sie blad Warning: unexpected error in date() in c:\apache\htdocs\czas.php on line 36
pozostało czasu:


ups faktycznie mój błąd (małe przeoczenie):

wstaw:
  1. <?php
  2. $secToEnd = $nextOpenTime - time();
  3. ?>


tuż przed:
  1. <?php
  2. echo "pozostało czasu: ".date("H:i:s", $secToEnd-3600);
  3. ?>


zapomniałem Ci to przekopiować smile.gif
uczaj21
no tak zrobilem jak napisales lecz znowu jest cos nie tak wyswietla mi sie "pozostało czasu: 20:00:00" przeciez jest to błędne.Tak jak mowilem jest godz 17 15 to powinno wyswietlic 2 45 do zamkniecia.
Daimos
jak dla mnie szukasz uslugi, a nie pomocy, Cezar708 widze tego nie zauwazyl snitch.gif
uczaj21
poprostu chce uzyskac pomoc
josiash
ktoś już o tym wspomniałsmile.gif wystarczy kruciutki skrypt z f-cja time:)
Daimos
Cytat(uczaj21 @ 18.01.2008, 21:04:08 ) *
poprostu chce uzyskac pomoc

jaka pomoc? dostajesz praktycznie gotowca i nic z nim nawet nie probujesz zrobic
moze ktos Ci tu zrobi gotowca, ja nie, jak dla mnie mozesz napisac ogloszenie w dziale ze zleceniami

Cytat
prosze o konkretny kod.Przegladalem google tak sa skrypty odliczajace ale wiedz ze nigdy nie znajdziesz takiego ktory zaspakajal by twoje potrzeby.Podales mi funkcje i myslisz ze poradze sobie i dam rade z tym wszystkim co uwzglednilem w skrypcie? z php mialem doczynienia z 1 misiac a puzniej mialem przerwe.Potrzebna mi konkretna pomoc z wyjasnieniami.

Cezar708 daje Ci kod, a Ty masz jeszcze pretensje, ze to nie dokladnie to, co chciales?!
pokazal Ci przyklad, a Ty prosisz jawnie "o konkretny kod", a pozniej zaprzeczasz, ze chcesz tylko uzyskac pomoc

sory, ze wjezdzam, ale troche checi nauki
uczaj21
nie mam pretensji do kolegi dziekuje mu za kod ale mi chodzi ze ten kod zle dziala i tylko o to chodzi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.