Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak minuty zamienić na dziesiętne 0,25 itd
Forum PHP.pl > Forum > Przedszkole
casperii
Witam, szukam pomocy odnośnie jak wykonać przeliczenie godzin na dziesiętne.
Np 7 godzin i 15 min to 7,25 ,
7 godzin i 30 min to 7,5.
Obecny format następnie chcę mnożyć przez stawkę.

Obecnie wczytuje start pracy i koniec pracy z bazy. Następnie odliczam koniec pracy od startu i wyświetlam w formie:

  1. $start = "8:00";
  2. $stop = "16:30";
  3. $IleGodzin ="$h:$min"; //tu się pokaże 8:30.


Teraz chciałbym by te 8:30 zamieniło mi na 8,5 by móc pomnożyć przez stawkę.

Następnie co chciałbym osiągnąć i nie wiem jak ugryźć to, to chcę by po 5 rekordzie (od pn - pt) pokazywało mi dodatkową tabelkę poniżej gdzie mógłbym z sumować sobie godziny. No i jak wykonać te sumowanie?
Szymciosek
Liczbę minut podziel sobie przez 60. Wyjdzie Ci Twoja część.

Co do drugiej części - wykorzystaj modulo - mniej więcej jak niżej. Tabelkę sam sobie musisz już ogarnąć

Czyli iteruje po kolejnych dniach, wyciąga z nich potrzebne dane (tutaj podstawione $i), sumuje te dane i wyświetla, gdy minęło 5 dni.

  1. $howManyDays = 12;
  2. $sum = 0;
  3.  
  4. for ($i = 1; $i <= $howManyDays; $i++) {
  5. var_dump('your day is ' . $i);
  6. $sum += $i; // tutaj licz sobie stawke
  7.  
  8. if ($i % 5 === 0) {
  9. var_dump('sum is ' . $sum);
  10. $sum = 0;
  11. }
  12. }
casperii
Mam już coś takiego:

  1. <?php
  2. $i=1;
  3. $result = mysql_query("SELECT * FROM `payment` WHERE `login` = '".$row['login']."' ORDER BY `date` ASC LIMIT 10") or die(mysql_error());
  4. if(mysql_num_rows($result)>0){
  5. <div>
  6. <div>Dzień</div>
  7. <div>Godz. od</div>
  8. <div>Godz. do</div>
  9. <div>Ilość godzin</div>
  10. <div>Stawka</div>
  11. <div>Do wypłaty</div>
  12. </div>
  13. <br><br>');
  14. while($rowp = mysql_fetch_array($result)){
  15. $Data = date("d/m/Y", strtotime($rowp['date']));
  16. $GodzinaOd = date("H: i", strtotime($rowp['from']));
  17. $GodzinaDo = date("H: i", strtotime($rowp['to']));
  18.  
  19. $IleGodzin = (strtotime($rowp['to']) - strtotime($rowp['from']));
  20. $min = floor($IleGodzin / 60);
  21. $min = $min/60;
  22. $IleGodzin ="$min";
  23. $stawka = ($IleGodzin * 10); //tu wstawiam stawke
  24.  
  25.  
  26. <div>
  27. <div>'.$Data.'</div>
  28. <div>'.$GodzinaOd.'</div>
  29. <div>'.$GodzinaDo.'</div>
  30. <div>'.$IleGodzin.'</div>
  31. <div>'.$stawka.' PLN</div>
  32. <div>'.$stawka.'</div>
  33. </div>
  34. ');
  35.  
  36. if($i==5){
  37. <div>
  38. <div>Łącznie:</div>
  39. <div> - </div>
  40. <div> - </div>
  41. <div>TU CHCE ŁĄCZNIE GODZINY</div>
  42. <div>- PLN</div>
  43. <div>TU CHCE ŁĄCZNIE DO WYPŁATY</div>
  44. </div>
  45. ');
  46. $i=0;
  47. }
  48. $i++;
  49. }
  50. }else{
  51. print('<div style="float:left; font-size:14px; font-weight:bold;">Brak wynagrodzenia dla danego użytkownika w bazie danych.</div>');
  52. }
  53. ?>


Wyświetla rekordy z bazy, po każdym 5 rekordzie (po 5 dniu) dokłada mi dodatkowy div.
Teraz po każdym wyświetlonym rekordzie w polu do wypłaty chcę by mi sumowało kwotę.
Np:
DATA | GODZIN |STAWKA |DO wypłaty|
15/06/2015| 8 | 80 | 80
16/06/2015| 7 | 70 | 150
itd

Później w tym co zrobiłem , że po każdym 5 rekordzie pojawia się nowy div z podsumowaniem i tam chcę wszystko zliczyć.
Szymciosek
Stwórz sobie jakąś zmienną z sumą godzin oraz drugą z sumą do wypłaty. Sumuj to w trakcie iterowania. Przy tym jak masz $i = 0; (w ifie) zeruj również swoje sumy.
casperii
Cytat(Szymciosek @ 15.06.2015, 22:08:48 ) *
Stwórz sobie jakąś zmienną z sumą godzin oraz drugą z sumą do wypłaty. Sumuj to w trakcie iterowania. Przy tym jak masz $i = 0; (w ifie) zeruj również swoje sumy.



Kurde! nie ogarniam tego:

  1. $SumaGodzin=0;
  2. if ($i % 5 === 0) {
  3. $SumaGodzin += $IleGodzin;
  4. }
Szymciosek
Reszta z dzielenia.

Przenieś to

$SumaGodzin += $IleGodzin;

Przed if, a w if zrób coś takiego


echo $SumaGodzin;
$SumaGodzin = 0;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.