Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem - Warning: mktime() expects parameter 5 to be long, string given in
Forum PHP.pl > Forum > PHP
dawid77
Witam! mam taki problem z mktime. Mam skrypt który działa dokładnie wygląda to tak:

mam plik tekstowy z datami, podaje date od do i wyswietlają mi sie dokładnie te linie od podanej daty do podanej daty. Problem jest taki że prócz tych lini wyswietla mi sie taki komunikat:

Warning: mktime() expects parameter 5 to be long, string given in /var/www/apache2-default/harmonogram/index.php on line 33

skrypt wygląda tak:
  1. <form action='index.php' method='post'>
  2. <input type="text" name="f0" style="width: 9cm">
  3.  
  4. <br>
  5. <input type="text" name="f1" style="width: 9cm">
  6. <input type="submit" value="PODAJ DAT? OD">
  7.  
  8.  
  9. <br>
  10. <br>
  11. <?
  12. if(!$_POST["f0"]) exit(0);
  13. if(!$_POST["f1"]) exit(0);
  14.  
  15. $litera1 = $_POST["f0"];
  16. $litera2 = $_POST["f1"];
  17.  
  18. list( $od['data'], $od['cos'] ) = explode( ' ', $_POST['f0'] );
  19. list( $od['rok'], $od['miesiac'], $od['dzien'] ) = explode( '.', $od['data'] );
  20. $od['czas'] = date( 'Y.m.d', mktime( 0, 0, 0, $od['miesiac'], $od['dzien'], $od['rok'] ));
  21.  
  22. list( $do['data'], $do['cos'] ) = explode( ' ', $_POST['f1'] );
  23. list( $do['rok'], $do['miesiac'], $do['dzien'] ) = explode( '.', $do['data'] );
  24. $do['czas'] = date( 'Y.m.d', mktime( 0, 0, 0, $do['miesiac'], $do['dzien'], $do['rok'] ));
  25.  
  26. $fd = fopen("/var/www/apache2-default/pliki/plik.txt", "r");
  27. while (!feof ($fd)) {
  28. $linia = fgets($fd, 95);
  29. if ( feof( $fd ) ) break;
  30. list( , , $data, , , , , ) = explode( '|', $linia );
  31. list( $rok, $miesiac, $dzien ) = explode( '.', $data );
  32. list( $dzien, , ) = explode( ' ', $dzien );
  33. $czas = date( 'Y.m.d', mktime( 0, 0, 0, $miesiac, $dzien, $rok ));
  34. if ( ( $od['czas'] <= $czas ) && ( $czas <= $do['czas'] ) )
  35.  echo $linia."<br>";
  36. }
  37. ?>

a linia 33 to :
$czas = date( 'Y.m.d', mktime( 0, 0, 0, $miesiac, $dzien, $rok ));

był bym bardzo wdzieczny za jakie kolwiek informacje.

//kwiateusz: używamy bbcode
starach
Podajesz mu łańcuch znaków a nie liczbę.
No offence, ale masz taki śmietnik w kodzie że nawet nie widzę gdzie przypisujesz coś do zmiennej $dzien.
dawid77
  1. <?php
  2. no plik wygląda tak:
  3. || 2005.11.28 Po | 534.00 |  78.71 | 612.71 |  12 466.00 | 
  4. || 2005.12.28 &#152;r | 542.00 |  87.20 | 629.20 |  11 924.00 | 
  5. || 2006.01.28 So | 542.00 |  85.95 | 627.95 |  11 382.00 | 
  6. || 2006.02.28 Wt | 542.00 |  82.17 | 624.17 |  10 840.00 | 
  7. || 2006.03.28 Wt | 542.00 |  17.67 | 559.67 |  10 298.00 | 
  8. || 2006.04.28 Pi | 542.00 |  19.56 | 561.56 | 9 756.00 | 
  9. || 2006.05.28 Ni | 542.00 |  18.93 | 560.93 | 9 214.00 | 
  10. || 2006.06.28 &#152;r | 542.00 |  16.03 | 558.03 | 8 672.00 | 
  11. || 2006.07.28 Pi | 542.00 |  15.15 | 557.15 | 8 130.00 | 
  12. | 10 | 2006.08.28 Po | 542.00 |  15.65 | 557.65 | 7 588.00 | 
  13.  
  14. nierozumie gdzie może być błąd
  15. ?>
starach
Na końcu lini 32 naciśnij Enter i wpisz echo '<h1>'.$dzien.'</h1>';
Jeśli pokarze ci się liczba bez żadnych dodatkowych znaków oznacza to zapewne że przed nią albo po niej jest spacja. http://pl.php.net/manual/pl/function.trim.php
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.