Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]zmiana systemu dnia z 24 na 16 godzinny., Czyli jak dodać 8 godzin gdy zdarzenie wystepuje po 22:00
neo1986kk
post 1.11.2009, 18:42:20
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


Witam, mam plan produkcji, chodzi o to że zaklad nie pracuje na 3 zmiany i kiedy czas produkcji przekracza godzinę 22:00 powinno przeskawiać na 6:00. Czyli początek o godzinie 21:00 coś ma trwać 2 godziny więc skończy sie o 7:00 następnego dnia. Czy ktoś z was zna ten problem, jak można to rozwiąząć?
Pozdrawiam.
Go to the top of the page
+Quote Post
thomson89
post 1.11.2009, 19:03:23
Post #2





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Nie rozumiem cię trochę...
  1. $godzina = date('H');
  2.  
  3. switch($godzina)
  4. case '22':
  5. echo '6'; break;
  6. case '23':
  7. echo '7'; break;
  8.  
  9. //itp


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
neo1986kk
post 1.11.2009, 19:24:22
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


no tak ale to się dzieje automatycznie i są daty, godziny i minuty. W ten sposób kod byłby nie skończony, po drugie on musi przechodzic nie na 7:00 tylko na 7:00 kolejnego dnia.
Go to the top of the page
+Quote Post
vokiel
post 1.11.2009, 20:25:39
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Miałem podobny problem tworząc swoją listę obecności.

Musisz zrobić tu kilka obliczeń w skrypcie. W momencie kiedy jest tworzony ten plan produkcji musisz wyliczyć czy i o ile przekroczy krańcową godzinę. Zapisać do bazy to przed, następnie resztę zapisać od godziny startowej następnego dnia (oczywiście należy pamiętać o zmianie daty)


--------------------
Go to the top of the page
+Quote Post
celbarowicz
post 2.11.2009, 08:25:10
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


Podaję przykład jak można to zrobić. Kod jest rozwlekły, aby można samemu dostosować go do własnych potrzeb.Po wyrzuceniu rzeczy niepotrzebnych i przerobieni go zostanie tylko kilka linijek.


  1.  
  2. $obecna_data_i_godzina=date("Y-m-d H:i:s",time());
  3.  
  4.  
  5. echo $obecna_data_i_godzina; echo '<br>';
  6. echo 'obecna data='; echo $obecna_data = date("Y-m-d");echo '<br>';
  7. echo 'obecna godzina='; echo $obecna_godzina = date("H:i:s");echo '<br>';
  8. $godzina_do_zapisu=strtotime($obecna_godzina);
  9. $data_do_zapisu= $obecna_data ;
  10. $godzina22_00_00="22:00:00"; $godzina06_00_00="06:00:00";
  11.  
  12. echo 'granica_gorna='; echo $granica_gorna=strtotime($godzina22_00_00); echo '<br>';
  13. echo 'granica_dolna='; echo $granica_dolna=strtotime($godzina06_00_00); echo '<br>';
  14. echo 'obecna_godzina_inaczej='; echo $obecna_godzina_inaczej=strtotime($obecna_godzina); echo '<br>';
  15.  
  16. if($obecna_godzina_inaczej>$granica_gorna){ $godzina_do_zapisu=$obecna_godzina_inaczej-16*60*60;
  17. $data_do_zapisu=date("Y-m-d", (strtotime($obecna_data)+60*60*24)) ;
  18. }else{}
  19.  
  20. if($obecna_godzina_inaczej<$granica_dolna){ $godzina_do_zapisu=$obecna_godzina_inaczej+6*60*60;
  21. $data_do_zapisu=date("Y-m-d", (strtotime($obecna_data)+60*60*24)) ;
  22. }else{}
  23.  
  24. $godzina_zapis=date("H:i:s",$godzina_do_zapisu);
  25. echo '----------------------wynik-------------------------';echo '<br>';
  26. echo 'godzina_zapis=';echo $godzina_zapis; echo '<br>';
  27. echo 'data_zapis=';echo $data_do_zapisu; echo '<br>';
  28.  

testować zmieniając datę i czs w systemie.
pozdrawiam/ celbarowicz

poprawka
  1. if($obecna_godzina_inaczej<$granica_dolna){ $godzina_do_zapisu=$obecna_godzina_inaczej+6*60*60;
  2. $data_do_zapisu=date("Y-m-d", (strtotime($obecna_data))) ;
  3. }else{}
Go to the top of the page
+Quote Post
neo1986kk
post 2.11.2009, 11:33:06
Post #6





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


A jak zapisać to w postaci jednej zmiennej?

to znaczy w postaci $data_do_zapisu = rrrr-mm-dd gg:mm
Go to the top of the page
+Quote Post
celbarowicz
post 2.11.2009, 14:45:23
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


  1. // bez sekund --- cią dalszy----tak jak sobie życzysz--- dodaj na końcu
  2. echo 'daj znać czy o to chodziło--uprość ten skrypt';echo '<br>';
  3. $twoj_zapis=date("Y-m-d H:i",time(strtotime($data_do_zapisu)+strtotime($godzina_zapis)));
  4.  
  5. echo $twoj_zapis;
  6.  


Go to the top of the page
+Quote Post
neo1986kk
post 4.11.2009, 21:26:40
Post #8





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


tak dokładnie o to mi chodziło, tylko mam problem z dodawaniem kilku dni, bo np jak cos sie zaczyna 2009-01-01 20:00 a czas trwania to 3 dni to niby sie konczy o 2009-01-03 20:00, a przecież powinno 2009-01-03 20:00 + 3*8godzin
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: 16.06.2025 - 21:31