Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]odejmowanie godzin
peklo
post
Post #1





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


witam
Mam oto taki kod który dodaje mi w pętli godziny do tabeli czas

  1. foreach((array)$_POST['us'] as $key=>$us) {
  2. $data_wyk = (array)$_POST['data_wyk'][$key];
  3. $godz_powr = (array)$_POST['godz_powr'][$key];
  4. $rozp_pracy = (array)$_POST['rozp_pracy'][$key];
  5.  
  6. $sql ='INSERT INTO czas(rozp_pracy,godz_powr,us) VALUES (:rozp_pracy,godz_powr,us)';
  7. $stmt = $pdo->prepare( $sql );
  8. $stmt->bindValue(':rozp_pracy',$_POST['rozp_pracy'][$key], PDO::PARAM_STR);
  9. $stmt->bindValue(':godz_powr',$_POST['godz_powr'][$key], PDO::PARAM_STR);
  10. $stmt->bindValue(':us', $us, PDO::PARAM_STR);
  11. $stmt->execute();
  12. }

Typ danych w tabeli czas to TIME i jeśli w formularzu mam np godz. 10.00 to do tabeli dodaje mi jako 10:00:00.
Chciałbym teraz dodać jeszcze jedną zmienną np nadgodziny, która odejmie mi dwie zmienne
$nadgodziny=$godz_powr-$rozp_pracy;
  1. [/php]
  2. Próbuje tak
  3. [php]$stmt->bindValue(':nadgodziny',strtotime(($_POST['godz_powr'][$key])) - strtotime(($_POST['rozp_pracy'][$key])), PDO::PARAM_STR);

ale cos mi nie wychodzi. Poza tym chciałbym aby wpis to zmiennej nadgodziny był w takiej postaci 4:00:00 (jeśli np będzie takia różnica 20:00-16:00)
Jak mam to zrobić? Ktoś coś pomoże?

Albo inaczej. Czy da się odjąć te dwie godziny podczas wypełniania formularzza i wrzucenie róznicy do ukrytego inputa?

Ten post edytował peklo 27.08.2015, 19:26:41
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




strtotime - strtotime da ci liczbe sekund czyli 14400 a nie 04:00 ...


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

"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
peklo
post
Post #3





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


no bo tak mi daje i dzieliłem to przez 3600 itd itp ale czy ide w dobrum kierunku. Czy tą operacje daje w $stmt->bindValue czy może przed bindowaniem?

Ten post edytował peklo 27.08.2015, 19:33:16
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No wartosc ktorą bindujesz ma juz byc prawidlowa... no to chyba logiczne?

A poza tym czemy tych godzin nie trzymasz poprostu w bazie jako sekundy? Byloby o wiele latwiej cokolwiek potem z tym robic.


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

"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
bobek358
post
Post #5





Grupa: Zarejestrowani
Postów: 143
Pomógł: 22
Dołączył: 17.11.2007

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


A kolumny jaki mają typ w bazie danych?
Go to the top of the page
+Quote Post
peklo
post
Post #6





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


w kolumnach mam TIME. Ok to jak dodam je jako sekundy to jaki najlepiej typ danych zastosować?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




smallint ?


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

"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
peklo
post
Post #8





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


chyba zza mały zakres bo może byc 24h czyli 86400. MEDIUMINT(5) ?

Ten post edytował peklo 27.08.2015, 19:46:59
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to dostosuj ten INT do max jaki mozesz miec. Zobacz w manualu jaki rozmiar jaki trzyma max i bedziesz wiedzial jaki dobrac.


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

"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
peklo
post
Post #10





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


nie to sobie dobiore. generalnie chodziło mi o to jaki typ danych dobrać. Czy time czy może jakiś int. I druga sprawa. Jak w formularzu mam np. 16:00 to teraz tą wartość przy dodawaniu do tabeli, mam jak rozumiem pomnożyć X 3600 tak?
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Czy time czy może jakiś int.
Jaki typ to przeciez ci podalem wczesniej piszac smallint wiec logiczne ze nie time.

Cytat
Jak w formularzu mam np. 16:00 to teraz tą wartość przy dodawaniu do tabeli, mam jak rozumiem pomnożyć X 3600 tak?
No jesli w formularz nadal wspiujesz 16:00 to tak, przy zalozeniu ze nie bedzie minut smile.gif


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

"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
peklo
post
Post #12





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


no właśnie ,a jak będzie 16:47 ? smile.gif Co wtedy
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To wtedy 16*3600+47*60.. no wiesz, podstawy matematyki... tongue.gif


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

"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
peklo
post
Post #14





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


nie no z tym 60 to juz wpadłeem wcześniej. Tylko teraz zastanawiiam się jak to zapisać. Trzeba to jakoś rozbić implode?
gerneralnie wszystkie zmienne mogą byc jako TIME tylko te nadgodziny jako mediumint

Ten post edytował peklo 27.08.2015, 20:04:31
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




explode a nie implode


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

"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
peklo
post
Post #16





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


oj jasne że explode smile.gif A jak to rozbić?
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




kurcze.... zajrzyj do manuala... tam masz napisane jak uzywac explode....


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

"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
peklo
post
Post #18





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


explode to jaa już uzywałem ale nie wiem czy poradze sobie w tej petli z tym
Go to the top of the page
+Quote Post
nospor
post
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A co za roznica czy w petli czy nie?? Dla explode to bez roznicy gdzie go uzywasz. Jak masz ochote to mozesz nawet go na Marsie uzywac


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

"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
peklo
post
Post #20





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


e no wole w domu. Cus takiego $nadgodziny=explode(':',$nadgodziny); ?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 20.08.2025 - 04:26