2009-01-26 7 views
6

Nieco dziwne pytanie, ale mam nadzieję, że ktoś może pomóc.Wylicz procentową część dnia, która upłynęła.

Zasadniczo, jeśli czas byłby godzina dwudziesta, procent ten wynosiłby 50%, 6 rano 25%, a 16 wieczorem 75%.

Biorąc pod uwagę aktualny czas, jak można obliczyć ilość dnia, która już minęła?

Odpowiedz

12

Zakładając, że można uzyskać aktualną godzinę, byłoby całkiem łatwo obliczyć procent dnia, który upłynął.

percentage = (hours/24 + minutes/(60 * 24)) * 100 
+0

Dzięki, pracowała doskonale :) – Tom

+0

jeden zbyt wiele nawiasów tam ... pierwszy mógł zostać usunięty. –

+1

Naprawiono @FredBergman. – sykora

4

24 godziny w 100% tak 24/currentTime = wynik 100/result =%;)

0

nie wiem PHP, ale czy jest jakiś sposób, aby uzyskać aktualną datę czarownicę Chyba: P można wyodrębnić godzin z tego lub minut jak dokładnie ma to być ?, Bieżące godziny/24 * 100: P bieżące minuty/1440 * 100

3

gettimeofday (true) zwraca liczbę sekund, które upłynęły od północy jako pływak (chyba), więc chcesz: gettimeofday(true)/(60*60*24). Pomnożyć przez 100, aby uzyskać procent.

EDIT: Właściwie gettimeofday zwraca liczbę sekund, które upłynęły od początku epoki, więc trzeba odjąć północy:

$midnight = strtotime('00:00'); 
$epochseconds = gettimeofday(true); 
$timeofdayseconds = $epochseconds - $midnight; 
$timepercent = $timeofdayseconds/(60*60*24)*100; 
+1

Uwaga, działa to przez większość czasu, Z WYJĄTKIEM w dni DST! Dzisiaj mój zegar wrócił o godzinę i funkcja ta zawodzi, ponieważ liczba godzin od niedzieli północy i niedzieli w godzinach 20: 00 ma dodatkową godzinę +1! Być ostrzeżonym –

Powiązane problemy