Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]DateTime()->diff() i floatval() zwraca NAN
Forum PHP.pl > Forum > PHP
ghost1511
Od razu do rzeczy. Mam następujący fragment kodu:
  1. $query="SELECT zw_anal.KLUCZ_DOK, zw_anal.SYMBOL_ART, ZW_ANAL.ZAMOWIONO, ZW_ANAL.ZREALIZ, ZW_ANAL.POZYCJA, a.NAZWA_ART, k.SKROT_KTR, p.SYMBOL_KTR, CONVERT(DATETIME2, p.TERMIN) AS TERMIN
  2. FROM zw_anal('ZO', 1, '', '', '', 1, '1900.01.01', '2012.04.19', '', '2100.01.01', ''), artykuly a, nagl_dok n, kontrah k, poz_dok p "; //nie ma tutaj całego zapytania
  3.  
  4. $dzis=new DateTime();
  5.  
  6. $wynik_query=mssql_query($query);
  7. $licznik=0;
  8.  
  9. while($analiza[$licznik]=mssql_fetch_assoc($wynik_query)){
  10. $analiza[$licznik]['ZAMOWIONO']=floatval($analiza[$licznik]['ZAMOWIONO']);
  11. $analiza[$licznik]['ZREALIZ']=floatval($analiza[$licznik]['ZREALIZ']);
  12. $analiza[$licznik]['NAZWA_ART']=polskie_znaki($analiza[$licznik]['NAZWA_ART']);
  13. $analiza[$licznik]['SKROT_KTR']=polskie_znaki($analiza[$licznik]['SKROT_KTR']);
  14. $analiza[$licznik]['TERMIN']=new DateTime($analiza[$licznik]['TERMIN']);
  15. $analiza[$licznik]['ROZNICA']=$dzis->diff($analiza[$licznik]['TERMIN']);
  16. $licznik++;
  17. }


Po zakończeniu while'a w niektórych miejscach ZAMOWIONO przyjmuje wartośc NAN mimo że nie operuje na tej zmiennej ( poza funkcją floatval() ).
Po odrzuceniu przedostatniej linii pętli wszystko działa poprawnie jednak jest ROZNICA jest mi niezbędna do dalszej części programu i będę ją wykorzystywał kilkukrotnie.

Dlaczego diff() ma znaczenie na wartości innych zmiennych?
rocktech.pl
Witam.

Linia 15 co ma robić w twoim zamyśle ?
  1. var_dump( $analiza[$licznik]['ROZNICA']);


error_log i zobaczysz, że Object of class DateInterval could not be converted to string
ghost1511
Cytat(rocktech.pl @ 19.04.2012, 09:32:19 ) *
Witam.

Linia 15 co ma robić w twoim zamyśle ?
  1. var_dump( $analiza[$licznik]['ROZNICA']);


error_log i zobaczysz, że Object of class DateInterval could not be converted to string


ROZNICA ma przechowywać obiekt DateInterval
a var_dump() wyrzuca to:
  1. object(DateInterval)#2020 (8) {
  2. ["y"]=>
  3. int(0)
  4. ["m"]=>
  5. int(0)
  6. ["d"]=>
  7. int(8)
  8. ["h"]=>
  9. int(9)
  10. ["i"]=>
  11. int(57)
  12. ["s"]=>
  13. int(53)
  14. ["invert"]=>
  15. int(1)
  16. ["days"]=>
  17. int(6015)
  18. }
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.