Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MSSQL][PHP]Format daty
pablosso
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 9.05.2011

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


  1. <?php
  2. $serwer = "localhost";
  3. $connect = array ("UID" => "login", "PWD" => "haslo", "Database" => "baza");
  4. $tabela = "tabela";
  5.  
  6. $link = sqlsrv_connect($serwer, $connect);
  7.  
  8. $tabela_kody = sqlsrv_query($link,'SELECT * FROM '.$tabela)
  9. or die('Nie znaleziono tabeli');
  10.  
  11. while($row = sqlsrv_fetch_array($tabela_kody, SQLSRV_FETCH_ASSOC))
  12. {
  13.  
  14. if($data = $row['DataUtworzenia'])
  15. {
  16. $str = strtotime($data);
  17. $datazm = date('m-d-Y', $str);
  18. }
  19. else
  20. $datazm = null;
  21. ?>
  22. <tr id="tabb1">
  23. <td><?php echo $datazm?></td>
  24. </tr>
  25. <?php }
  26. echo '</tbody>
  27. </table>
  28. </div>
  29. </form>';
  30. ?>
  31. </body>
  32. </html>


Wyświetla mi wszędzie datę 01-01-1970 oraz błąd
Kod
PHP Warning:  strtotime() expects parameter 1 to be string, object given in D:\tst\asd.php on line 124
.

Co trzeba zrobić żeby to działało normalnie?
Go to the top of the page
+Quote Post
ult
post
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 1
Dołączył: 3.07.2011

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


Jak sam błąd wskazuje - to, co przekazujesz w linii 16. do funkcji strtotime nie jest stringiem. Zobacz np. za pomocą var_dump, czym jest $data i wtedy zobaczysz co z nią można zrobić, żeby była stringiem.


--------------------
Dosyć ma dzień swojej biedy. (Mt 6:34)
Go to the top of the page
+Quote Post
pablosso
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 9.05.2011

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


Kod
object(DateTime)#1 (0) { } object(DateTime)#2 (0) { }
object(DateTime)#3 (0) { } object(DateTime)#4 (0) { }

To pokazuje.

Tylko, że najdziwniejsze jest to, że przy łączeniu przez mssql działa normalnie, a przy łączeniu przez sqlsrv świruje. Nie wiem w ogóle czemu na serwerze mi nie działa mssql, a mam poinstalowane wszystko dobrze, dlatego muszę używać sqlsrv :/

Ten post edytował pablosso 5.07.2011, 13:29:43
Go to the top of the page
+Quote Post
zawodnik
post
Post #4





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 4.06.2011

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


Może w pliku php.ini nie odkomentowałeś wiersza
;extension=php_mssql.dll
?

Ten post edytował zawodnik 5.07.2011, 13:35:55
Go to the top of the page
+Quote Post
pablosso
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 9.05.2011

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


W php.ini jest wszystko ok.
Tak dla jasności
Windows Server 2008, IIS 7, php 5.2.17 zainstalowane przez Microsoft Web Platform Installer 3.0. Jest nawet zainstalowany tam Microsoft SQL Server 2008 i wyskakuje błąd, że komenda mssql_connect jest nieznana.

Ten post edytował pablosso 5.07.2011, 14:03:03
Go to the top of the page
+Quote Post
kaem
post
Post #6





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


W zapytaniu select użyj funkcji convert albo cast na kolumnie z datą do zmiany obiektu DateTime na Date.

Ten post edytował kaem 5.07.2011, 14:20:13
Go to the top of the page
+Quote Post
pablosso
post
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 9.05.2011

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


Kod
PHP Catchable fatal error:  Object of class DateTime could not be converted to string

Fatalna sprawa :| ...
Go to the top of the page
+Quote Post
Noidea
post
Post #8





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


Nowy sterownik microsoftu automatycznie tworzy obiekty DateTime dla pól przechowujących datę. Z jakiegoś powodu pehapowe DateTime nie zdobyło popularności i pewnie stąd te problemy.

Żeby wyświetlić datę użyj metody format():
  1. while($row = sqlsrv_fetch_array($tabela_kody, SQLSRV_FETCH_ASSOC))
  2. {
  3. if( $row['DataUtworzenia'] != null )
  4. {
  5. $datazm = $row['DataUtworzenia']->format('m-d-Y');
  6. }
  7. else
  8. {
  9. $datazm = "";
  10. }
  11.  
  12. // wyświetlanie
  13. ?>


Ten post edytował Noidea 6.07.2011, 10:42:27


--------------------
Go to the top of the page
+Quote Post
pablosso
post
Post #9





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 9.05.2011

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


Ok, dzięki wielkie smile.gif
Go to the top of the page
+Quote Post

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: 19.08.2025 - 12:51