Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][reg]Wyciągnięcie z treści, przedziału godzinowego
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cześć

Kombinuję i kombinuję i wykombinować nie umim.
Mam komentarze od użytkowników w których mogą wpisywać min. godziny (zakres), potrzebuję uzyskać dwie dane- godzina od, godzina do.

Przykładowe "standardy" wpisywane przez użytkowników to:
Cytat
  • g.7-17
  • godz: 07.00-17.00
  • godz: 7.00-17.00
  • 07-17
  • 07:00-17:00
  • godz 07:00-17:00
  • godz: 07.00-17.00 pilne
  • od 7 do 16

kombinacji jest multum:
- g. / godz/ od do
- zero przy cyfrach <10
- po godzinie minuty lub bez
- po godzinie kropka lubz dwukropek
- dodatkowy komentarz przed uwagami
- dodatkowy komentarz po uwagach
itp...


czy ktoś miał podobny problem? Dodam, że niestety stworzenie dodatkowych pól dla użytkowników nie wchodzi w grę, tak samo jak zmuszenie użytkowników do stosowania jednego formatu.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TomASS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


A jednak zrobiłem to jednym wyrażeniem:
  1. function godziny($godzina){
  2. if(ereg('[01]?([0-9]{1})(([\.:][0-9]{2})?)[-][01]?([0-9]{1})(([\.:][0-9]{2})?)',$godzina,$result)){
  3. return $result[0];
  4. }
  5. else return false;
  6. }


Dostaję teraz same godziny i dalej "naprawiam" do standardowej postaci (07:00-13:00)
  1. function standardOneHoure($jednaGodzina){
  2. $data = explode(':',$jednaGodzina);
  3. if(count($data)==1) $data[1] = '00';
  4. if(strlen($data[0])==1) $data[0] = '0'.$data[0];
  5. return $data[0].':'.$data[1];
  6. }
  7.  
  8. function standardHoure($godzina){
  9. $godzina = str_replace(' ','',$godzina);
  10. $godzina = str_replace('.',':',$godzina);
  11. $godziny = explode('-',$godzina);
  12. $godz1 = standardOneHoure($godziny[0]);
  13. $godz2 = standardOneHoure($godziny[1]);
  14. return $godz1.'-'.$godz2;
  15. }



(IMG:style_emoticons/default/smile.gif)

Ten post edytował TomASS 21.09.2010, 16:29:53
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: 12.10.2025 - 13:30