Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][html]Formatowanie danych w formularzu
matius71
post 18.03.2018, 02:24:25
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

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


Witam,

Mam sporo danych do wprowadzania i nie bardzo wiem jak sobie z nimi poradzić.

Chodzi o np. wprowadzanie godziny ale nie w formacie do 24h tylko żeby możliwe było wpisać godziny 235:23 czyli bardziej sumowanie godzin a nie przeliczanie na dni godziny i minuty (tak jak to jest w wielu miejscach w internecie)

Inna dana która sprawia kłopot i nie widzę nigdzie rozwiązania to zrobienie pola gdzie można wpisać cyfry od 0 do 9. Zajmująca zawsze pięć miejsc następnie przecinek i jedno miejsce po przecinku: 12345,6 ale jeśli ktoś wpisze 375,3 to żeby zapisywało się w bazie 00375,3. Najlepiej by było żeby każda cyfra była jeszcze w oddzielnym okienku ☐☐☐☐☐,☐ ale to już jest dla mistrzów programowania chyba biggrin.gif

Ciężka sprawa z tymi dwiema rzeczami więc każda pomoc będzie mile widziana. nerdsmiley.png
Go to the top of the page
+Quote Post
Pyton_000
post 18.03.2018, 10:17:10
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


1. Godziny, rozwiązań jest wieeele:
- zawsze możesz wstawić 2 pola a potem przy odebraniu je złączyć.
- ustawić 1 pole i wstaić placeholder
- użyć jakiejść libki JS typu http://firstopinion.github.io/formatter.js/
- użyć HTML5 Pattern

2.Tutaj analogicznie w sumie do ww.
Jesli chodzi o zapisanie to ustawiasz sobie typ DECIMAL(6,1) ZEROFILL
Go to the top of the page
+Quote Post
matius71
post 18.03.2018, 14:34:51
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

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


No to jeśli chodzi o wpisywanie tych godzin to ja nie widzę jakiegoś prostego rozwiązania przez to że będzie więcej niż 24h. Pola typu time odpadają, text odpada no i ręce opadają biggrin.gif
Go to the top of the page
+Quote Post
Pyton_000
post 18.03.2018, 15:00:30
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


a jaki to problem? DECIMAL(8,2) i styknie...

Albo po prostu unsigned int i zamiana na minuty wszystkiego.

Ten post edytował Pyton_000 18.03.2018, 15:00:58
Go to the top of the page
+Quote Post
matius71
post 19.03.2018, 12:43:40
Post #5





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

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


Dale chodzi o to żeby wpisywało się w godzinach przy czym format godziny nie jest 24h tylko może być nawet 1000h 23min nie wiem jak zrobić pole które będzie ☐:☐ w takim formacie. do bazy danych też bym chciał żeby było przetrzymywane w takim formacie hh:MM
Go to the top of the page
+Quote Post
SmokAnalog
post 19.03.2018, 12:47:28
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Baza danych nie jest od ładnego wyświetlania, tylko od tego, żeby na danych dało się pracować (np. sortować). Możesz sobie dodać widok dla bazy danych albo od biedy dodatkową kolumnę.
Go to the top of the page
+Quote Post
matius71
post 20.03.2018, 13:58:27
Post #7





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

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


No dobra tylko że godzina ma 60min a nie 100. Nie ma jakiejś opcji formatu czasowego tylko że długiego np do 10000h?
Go to the top of the page
+Quote Post
nospor
post 20.03.2018, 14:36:44
Post #8





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Tak czy tam ten temat i czytam i nie moge wyjsc z podziwu jak sam sobie mnozysz trudnosci na sile...
A jaki problem w polu liczbowym (INT) w bazie zapisac 100 czy nawet te 10000? Ktos ci broni? Religia zabrania?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SmokAnalog
post 20.03.2018, 14:36:52
Post #9





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


UPDATE

Zapisuj to po prostu jako liczbę minut w bazie i zamieniaj tam, gdzie to wyświetlasz. Na przykład tak:

  1. <?php
  2.  
  3. function formatDuration(int $durationMinutes, string $format = '%d:%02d'): string {
  4. $hours = (int) floor($durationMinutes / 60);
  5. $minutes = $durationMinutes % 60;
  6.  
  7. return sprintf($format, $hours, $minutes);
  8. }
  9.  
  10. $test1 = formatDuration(123); // 2:03
  11. $test2 = formatDuration(123, '%dg %dm'); // 2g 3m
  12. $test3 = formatDuration(123, 'Godzin: %d, Minut: %d'); // Godzin: 2, Minut: 3
  13.  


Ten post edytował SmokAnalog 20.03.2018, 14:45:15
Go to the top of the page
+Quote Post
nospor
post 20.03.2018, 14:38:38
Post #10





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




@SmokAnalog po co zbednie zapisywac to jako sekundy? Wyraznie podane ze najmniejsza wartosc to minuty i w minutach powinno sie to trzymac. No i wejdzie wiecej minut niz sekund wiec bedzie mozna ograniczyc wielkosc pola


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SmokAnalog
post 20.03.2018, 14:43:08
Post #11





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Aha, nie doczytałem. No to analogicznie, tylko sekundy -> minuty i minuty -> godziny tongue.gif

Wyedytowałem kod. Połowa uwzględniała godziny/minuty, a połowa minuty/sekundy. Chyba się zamyśliłem biggrin.gif

Ten post edytował SmokAnalog 20.03.2018, 14:44:46
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: 17.04.2024 - 00:32