Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wykrycie odpowiedniej zmiany oraz różnica między czasem
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


proszę o podpowiedź merytoryczną w dwóch tematach:

1. Mam tabele ze zmianami ( w sensie zmiany w zakładzie pracy), 3 zmiany

shifts
shift_id
shift_name
shift_start
shift_stop

uzupełniona jest tak

1 | shift_1 | 06:00:00 | 14:00:00
1 | shift_2 | 14:00:00 | 22:00:00
1 | shift_3 | 22:00:00 | 06:00:00

na podstawie aktualnego czasu chce wyznaczyć, która jest obecnie zmiana.
zapytanie w stylu
  1. SELECT * FROM shifts WHERE <aktualna godzina> BETWEEN HOUR(shift_start) AND HOUR(shift_end);

nie działa dla 3 zmiany. I w sumie musiałbym zmienić lekko te godziny aby przedziały na siebie nie nachodziły -> czyli lekko rozbudować ten helper o to by patrzył też na minuty ( zmiany musiała by się kończy np. o 13:59:00 )

załatwiam to helperem w CI
  1. function current_shift()
  2. {
  3. //ensure that there is something in the variable - in case of no match
  4. $shift_id = '';
  5.  
  6. $ci =& get_instance();
  7.  
  8. $current_hour = date("H") + 1;
  9.  
  10. $ci->db->select('shift_id');
  11. $ci->db->where($current_hour . ' BETWEEN shift_start AND shift_end', NULL, FALSE);
  12.  
  13. $query = $ci->db->get('shifts');
  14.  
  15. $result = $query->row(0);
  16.  
  17. $shift_id = $result->shift_id;
  18.  
  19.  
  20. return $shift_id;
  21. }


2. Różnica między czasami

załóżmy, że jest 1 zmiana ( czyli między 8 a 14), załóżmy dalej stan aplikacji na 10:30. Potrzebuję wyliczyć ile upłynęło czasu między 10:30 a 8 w sekundach. Ten przypadek jeszcze nie taki zły ale czy w ten sam sposób da się wliczyć czas między np. 23 a 2.30 w nocy? Tutaj też się zmienia data i nie wiem czy to ma znaczenie dla tej kalkulacji?


---
jak widać oba punkty są poniekąd zależne od siebie bo oba bazują na tabeli 'shifts'

Ten post edytował john_doe 13.01.2013, 11:53:51
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.12.2025 - 06:28