[php] Godzina i zaokrągląnieW

0

Witam,
Mam takie pytanko, mam sobie zmienna wyciagnietą z bazy w postaci HH:mm np 17:34 , teraz musze zrobic tak ze jezeli godzina jest np 17:30 lub wzwyż to bede ustawial na 18:00 a jak do 30 minut czyli np 17:14 to bedzie 17:00.
Reczniue mozna samemu napisac funkcje , sprawdzac minuty i jak wieksze od 30 to dadaj 1 do godziny a jak mniej to zostaje godzina i minuty=00. Ale czy nie mozna tego zrobic jakos prosciej ?

0

no nie ma gotowej takiej funkcji, wątpię żeby ktoś myślał kiedyś żeby zrobić funkcję zaokrąglania godzin, ale można w jednej linijce napisać własną funkcję, przykład:

$data = strtotime((($up=60-$down=date('i'))<=30?'+'.$up:'-'.$down).' minutes');

potem robisz co chcesz, np:

echo date('H:i', $data);

// do postu poniżej - fakt ale chciałem żeby wyszedł format daty na którym można dalej operować i nie bawić się w zmianę 24 na 0 i zmianą daty, różnicy w prędkości nie ma jak odczuć a jak tak komuś zależy na szybkości to niech nie stosuje nawet wcięć w kodzie bo php w końcu jednak teoretycznie patrzy i pomija te puste spacje więc zajmują mu one trochę czasu, jak ktoś powie że zamiast strtotime('+1 minute') można zastosować time()+60 to powiem że się myli bo niby tak jest i ja tak robiłem, jednak okazało się że to ma jakieś felery nie mam pojęcia czym spowodowane, tak że time()+7*3600 daje mi raz 7 godzin dalej czas a za którymś odświeżeniem w php 4.3.1 okazuje się że dodało 8 godzin :/

0

Można też tak [green]

$d = '13:31';
$d = ($d{3}<3?($d{0}.$d{1}):(($d{0}.$d{1})+1)).':00';
echo $d;

Jedyne, co może nie pasować, to 23:45 -> 24:00
to tylko taki przykład bez konwersji funkcjami [czyli teoretycznie szybszy]

1 użytkowników online, w tym zalogowanych: 0, gości: 1