Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak przekształcić czas na wartość i spowrotem
Forum PHP.pl > Forum > PHP
grudziu
Witam,
mam taki problem. Tworze aplikację, która pobierać będzie wartości (i umieszczać je na osi OY) oraz czas kiedy te wartości będą występować (to umieszczane będzie na osi OX). Czyli np wykres temperatury w czasie- temp na OY czas na OX.

Posiadam w czterech zmiennych wartości czasu, zmienne to:
$hh-godziny, $mm-minuty, $ss-sekundy, $ms-milisekundy.
Te wartości przekształcam na jedną wartość, żeby przeskalować odpowiednio wykresy.
Zmienna ta obliczana jest wg następującego wzoru: $czas_wartosc=60*60*$hh+60*$mm+$ss+0.001*$ms. Czyli w pewnym sensie jest to wyrażone w sekundach.

Chciałbym, żeby na osi OX zawsze zaznaczane były tylko 6 wartości: czas_min, czas_max i cztery wartości proporcjonalne w tym przedziale, tak żeby w przypadku dużej ilości punktów pomiarowych nie zawalić opisami osi OX.
Rozwiązuje to w ten sposob:

$czas_na_stale[0]=$czas_min;
$czas_na_stale[1]=$czas_min+($czas_max-$czas_min)*1/5;
$czas_na_stale[2]=$czas_min+($czas_max-$czas_min)*2/5;
$czas_na_stale[3]=$czas_min+($czas_max-$czas_min)*3/5;
$czas_na_stale[4]=$czas_min+($czas_max-$czas_min)*4/5;
$czas_na_stale[5]=$czas_max;

Otrzymuje ładny wykres, tzn mam 6 punktów równo oddalonych od siebie.

Teraz pojawia się problem. Chciałbym na potrzeby wykresów opisać te sześć punktów, nie wiem jak spowrotem wartość $czas_na_stale można przekształcić w wartość w formacie HH:MM:SS.ms questionmark.gif a może macie inny pomysl jak to rozwiązać?questionmark.gif
pozdrawiam
phpion
Nie do końca zrozumiałem Twój problem, ale możliwe, że przydatne będą Ci w zasadzie tylko 2 funkcje:
- strtotime" title="Zobacz w manualu PHP" target="_manual do przekształcenia daty na format unixowy
- date" title="Zobacz w manualu PHP" target="_manual do odpowiedniego sformatowania powyższego
misiek172
ja osobiście do zapisu daty używam

mktime();

która zamienia date na liczbe sekund od 1970.

można wtedy dowolnie na niej operować, a wyświetla się poprzez

date('d.m.Y', $zmienna_z_sekundami);
grudziu
właśnie mam troche kłopot z poprawnym sformułowaniem mojego problemu.

Jeszcze raz:
Wiadomo, ze żeby narysować wykres należy czas zapisać jako wartość. Ja ten czas przekształcam poprzez wzór $czas_wartosc=60*60*$hh+60*$mm+$ss+0.001*$ms.

Nie znałem wczesniej funkcji o których piszecie we wcześniejszych postach, najwyżej przerobie mój skrypt, ale podejrzewam, że trochę to czasu zajmie, mam nadizeje ze ktoś jeszcze udzieli mi wskazówki.

W wyniku działania mojego skryptu dostaje taki wykres:



I teraz pytanie: jak wartośc 62890.644 zamienić spowrotem na 17:28:10.644 tylko w celu opisania osi OX nie jako liczba ale jako godzina,minuta, sekunda i milisekunda.
phpion
Na osi OX uzywaj unixowego formatu czasu i nie będziesz miał żadnych problemów.
grudziu
Problem rozwiązany, rozwiązanie znajduje się tutuaj:
http://www.coderscity.net/sutra71386.html&...81ec664c5#71386
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.