Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][MySQL][PHP]Konwertowanie czasu
brzanek
post
Post #1





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Witam pobieram z bazy danych mysql dane w których znajduje się data w formacie UNIX
Wyświetlam te dane w json za pomocą tego
  1. <?php
  2. header('Content-Type: application/json');
  3.  
  4. //database
  5. define('DB_HOST', 'localhost');
  6. define('DB_USERNAME', 'login');
  7. define('DB_PASSWORD', 'pass');
  8. define('DB_NAME', 'nazwa_bazy');
  9.  
  10. $mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
  11.  
  12. if(!$mysqli){
  13. die("Connection failed: " . $mysqli->error);
  14. }
  15.  
  16. $query = sprintf("SELECT htime, hwindSpeed, hprecipIntensity, htemperature, hcloudCover, hprecipProbability FROM prognoza_godzinowa WHERE htime >= UNIX_TIMESTAMP(UTC_DATE()) AND htime <= UNIX_TIMESTAMP(UTC_DATE() + INTERVAL 1 DAY) AND hid_miasto='".$_GET['hid_miasto']."'");
  17.  
  18. $result = $mysqli->query($query);
  19.  
  20. $data = array();
  21. foreach ($result as $row) {
  22. $data[] = $row;
  23. }
  24.  
  25. $result->close();
  26.  
  27. $mysqli->close();
  28.  
  29. print json_encode($data);


Wszystko ładnie działa ale potrzebuję wyciągnąć z całej daty samą godzinę z minutami. Jak tego dokonać?
Potrzebne jest mi to do wykresu bo teraz wy wygląda nie ciekawie z czasem unixowym.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


https://stackoverflow.com/questions/847185/...e-in-javascript

Masz kilka błędów. SQL injection, die które wywali parsowanie json po stronie js, iteracja po query które to może zwrócić false.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #3





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


viking podałeś mi stronę na której jest masa przykładów ale nie widzę tam żadnego co może mi pomóc.
Czy te błędy mają coś wspólnego z tym co chcę uzyskać?
W zapytaniu jakie stosuję na stronie do bazy mysql htime odpowiada za czas w unixie i wyświetla on się na stronie właśnie w takiej formie ale potrzebuję z tej daty wyciągnąć tylko godzinę i minuty w formacie H:i
Teraz to wygląda tak
http://brzanek.webd.pl/28082017/infusions/...hp?hid_miasto=9
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Znaczy czego nie widzisz? Operujesz na obiekcie Date w JS. Masz kupę przykładów.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #5





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Nie wiem jak to zrobić
W php tak bym to zrobił
  1. echo "<div>".date("H:i", $row['htime'])."</div>";

Ale w java pojęcia nie mam gdzie i jak to zapisać.
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Możesz to również zrobić na poziomie samego zapytania MySQL.
Ale przecież są funkcje w JS, np.: https://developer.mozilla.org/en-US/docs/We...s/Date/getHours. Dołączysz analogiczną dla minut i otrzymasz to co chcesz.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #7





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


ok racja można to zrobić z poziomu zapytania do mysql
Zrobiłem tak
  1. $query = sprintf("SELECT FROM_UNIXTIME(htime) htime, hwindSpeed, hprecipIntensity, htemperature, hcloudCover, hprecipProbability FROM prognoza_godzinowa WHERE htime >= UNIX_TIMESTAMP(UTC_DATE()) AND htime <= UNIX_TIMESTAMP(UTC_DATE() + INTERVAL 1 DAY) AND hid_miasto='".$_GET['hid_miasto']."'");

Oczywiście dostaję w rezultacie datę w takiej postaci
np: 2017-09-14 11:00:00
Jak teraz z tego wyciągnąć damą godzinę i minuty czyli 11:00
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


https://dev.mysql.com/doc/refman/5.7/en/dat...ion_date-format


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





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Zajrzyj w końcu do dokumentacji rozwiązań którymi się posługujesz. Do JS ci się nie chce to chociaż może mysql https://dev.mysql.com/doc/refman/5.5/en/dat...-functions.html


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #10





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Cały czas siedzę w tej instrukcji i nie mogę tego zrobić
  1. FROM_UNIXTIME(htime, '%H:%i')

Tak to nie działa.
Go to the top of the page
+Quote Post
trueblue
post
Post #11





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A co otrzymujesz?


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #12





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Wcześniej nic
Teraz zastosowałem takie coś
  1. TIME(FROM_UNIXTIME(htime))

i mam godziny, minuty i nieszczęsne sekundy
Jak zastosuje to
  1. HOUR(FROM_UNIXTIME(htime))

To mam same godziny bez minut
Go to the top of the page
+Quote Post
trueblue
post
Post #13





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Co otrzymujesz przy takim zapytaniu?
  1. SELECT FROM_UNIXTIME(1447430881,'%H:%i')

Podaj przykładowy timestamp ze swojej tabeli.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #14





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Dałem
  1. FROM_UNIXTIME(1505383200,'%H:%i')

pojawia się pusta strona
http://brzanek.webd.pl/28082017/infusions/...hp?hid_miasto=9
Go to the top of the page
+Quote Post
trueblue
post
Post #15





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jakoś chaotycznie to idzie.
Pytałem Ciebie o wynik zapytania. W tej chwili nie wiem czy wynikiem samego zapytania jest "nic", czy też miałeś na myśli wynik działania skryptu.
Włącz wyświetlanie błędów.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #16





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Już włączyłem
Warning: sprintf(): Too few arguments in /home/brzanek/public_html/28082017/infusions/prognoza_panel/charts/opady.php on line 18
Warning: mysqli::query(): Empty query in /home/brzanek/public_html/28082017/infusions/prognoza_panel/charts/opady.php on line 20
Warning: Invalid argument supplied for foreach() in /home/brzanek/public_html/28082017/infusions/prognoza_panel/charts/opady.php on line 25
Fatal error: Call to a member function close() on a non-object in /home/brzanek/public_html/28082017/infusions/prognoza_panel/charts/opady.php on line 29

Cały kod wygląda tak
  1. <?php
  2. ini_set( 'display_errors', 'On' );
  3. error_reporting( E_ALL );
  4. header('Content-Type: application/json');
  5.  
  6. //database
  7. define('DB_HOST', 'localhost');
  8. define('DB_USERNAME', 'login');
  9. define('DB_PASSWORD', 'pass');
  10. define('DB_NAME', 'nazwa_bazy');
  11.  
  12. $mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
  13.  
  14. if(!$mysqli){
  15. die("Connection failed: " . $mysqli->error);
  16. }
  17.  
  18. $query = sprintf("SELECT FROM_UNIXTIME(1505383200,'%H:%i') htime, hwindSpeed, hprecipIntensity, htemperature, hcloudCover, hprecipProbability FROM prognoza_godzinowa WHERE htime >= UNIX_TIMESTAMP(UTC_DATE()) AND htime <= UNIX_TIMESTAMP(UTC_DATE() + INTERVAL 1 DAY) AND hid_miasto='".$_GET['hid_miasto']."'");
  19.  
  20. $result = $mysqli->query($query);
  21.  
  22.  
  23.  
  24. $data = array();
  25. foreach ($result as $row) {
  26. $data[] = $row;
  27. }
  28.  
  29. $result->close();
  30.  
  31. $mysqli->close();
  32.  
  33. print json_encode($data);
Go to the top of the page
+Quote Post
viking
post
Post #17





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Nazwy wybieranych wartości oddziela się przecinkiem. Sprawdź PM.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #18





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


A to nie jest oddzielone przecinkami
htime, hwindSpeed, hprecipIntensity, htemperature, hcloudCover, hprecipProbability
Go to the top of the page
+Quote Post
viking
post
Post #19





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Źle spojrzałem. Dałeś funkcję jako alias istniejącej w tabeli kolumny.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #20





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


To dobrze czy źle?
ps. viking przeczytałeś PW?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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:55