Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dopisywanie zera do liczby jednocyfrowej
Forum PHP.pl > Forum > Przedszkole
ichu
Mam taki oto skrypt który pobiera z tablicy czasy w formacie hh:mm, a następnie powiększa je o daną liczbę minut ($odleglosc). Problem w tym, że jeśli mamy np. godzinę 9:06 to skrypt zapisuje to jako 9:6. Jak mam użyć funkcji sprintf i w którym miejscu żeby wyświetlało mi 9:06 (ale nie 09:06)?

  1. <?php
  2. foreach($idkursu as $key =>$value)
  3. {
  4. $explode = explode(":","$value");
  5. $explode[1] = ($explode[1]+$odleglosc);
  6. if($explode[1] >= 60){
  7. $explode[0] = ($explode[0] + 1);
  8. $explode[1] = ($explode[1] - 60);
  9. $explode[1] = sprintf("%0s",$explode[1]);
  10. }
  11. $after=implode (':', $explode);
  12. $idkursu[$key]=$after;
  13. }
  14. return $idkursu;
  15. ?>
phpion
  1. <?php
  2. foreach($idkursu as $key=>$value)
  3. {
  4. $explode = explode(':', $value);
  5.  
  6. if ($explode[1] < 10)
  7. $explode[1] = '0'.$explode[1];
  8.  
  9. $idkursu[$key] = implode(':', $explode);;
  10.  
  11. }
  12. return $idkursu;
  13. ?>

ale czy nie lepiej od razu:
  1. <?php echo date("g:i"); ?>

questionmark.gif
Polecam zapozananie sie z: http://pl2.php.net/manual/pl/function.date.php
php programmer
przepisane z manuala
  1. <?php
  2. $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
  3. ?>
ichu
Trochę dałem ciała, mogłem wstawić cały skrypt :/
Wygląda to tak:

  1. <?php
  2. // Tablica z poszczególnymi godzinami, identyfikatory są różne, np $dmp, $sgp
  3.  
  4. $sgp[0]="5:20";
  5. $sgp[1]="11:00";
  6. $sgp[2]="13:55";
  7. $sgp[3]="15:00";
  8. $sgp[4]="19:40";
  9. $sgp[5]="21:00";
  10.  
  11. function dodawanie($idkursu, $odleglosc)
  12. {
  13. foreach($idkursu as $key =>$value)
  14. {
  15. $explode = explode(":","$value");
  16. $explode[1] = ($explode[1]+$odleglosc);
  17. if($explode[1] >= 60){
  18. $explode[0] = ($explode[0] + 1);
  19. $explode[1] = ($explode[1] - 60);
  20. }
  21. $after=implode (':', $explode);
  22. $idkursu[$key]=$after;
  23. }
  24. return $idkursu;
  25. }
  26.  
  27. $sgp=dodawanie($sgp, 2); // Dodajemy 2 minuty do każdego elementu tablicy
  28.  
  29. echo $sgp[1]; // Wypisuje wartość dla danego elementu powiększonego o daną liczbę minut
  30. ?>


Chodzi o to, że skrypt nie wypisuje np. 12:01 tylko 12:1, 20:2 a nie 20:02 itd...
babejsza
  1. <?php
  2. // Tablica z poszczególnymi godzinami, identyfikatory są różne, np $dmp, $sgp
  3.  
  4. $sgp[0]="5:20";
  5. $sgp[1]="11:00";
  6. $sgp[2]="13:55";
  7. $sgp[3]="15:00";
  8. $sgp[4]="19:40";
  9. $sgp[5]="21:00";
  10.  
  11. function dodawanie($idkursu, $odleglosc)
  12. {
  13. foreach($idkursu as $key =>$value)
  14. {
  15. $explode = explode(":","$value");
  16. $explode[1] = ($explode[1]+$odleglosc);
  17. if($explode[1] >= 60){
  18. $explode[0] = ($explode[0] + 1);
  19. $explode[1] = ($explode[1] - 60);
  20. }
  21. if($explode[1] < 10) $explode[1] = "0".$explode[1];
  22. $after=implode (':', $explode);
  23. $idkursu[$key]=$after;
  24. }
  25. return $idkursu;
  26. }
  27.  
  28. $dmp=dodawanie($sgp, 2); // Dodajemy 2 minuty do każdego elementu tablicy
  29.  
  30. echo $sgp[1]; // Wypisuje wartość dla danego elementu powiększonego o daną liczbę minut
  31. ?>
ichu
Działa! smile.gif Rozwiązanie prostsze niż sądziłem... Dzięki za pomoc, temat uważam za zakończony.
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.