Autor | Zpráva | ||
---|---|---|---|
slon_cz Profil |
#1 · Zasláno: 12. 3. 2022, 01:34:26
Dobrý den, rád ybch požádal o radu, nedaří se mi vymyslet, jak co nejjednodušeji a hlavně funkčně zpracovat čas v daném formátu a převést ho na vteřiny
Formát výstupu je různý: 1) 5h12m23s 2) 12m23s 3) 5h 4) 23s 5) 12m Toto jsou možné výstupy, které lze dostat. Bohužel jsou v tomto formátu a mě se nedaří vymyslet, jak tyto data "jednoduše" převést na vteřiny - jednou funkcí vždy. Zkoušel jsem zjišťování zda string obsahuje "h", "m", "s", následné explode na tyto části a postupně převést na vteřiny každé zvlášť, ale nedostal jsem se k výsledku, jelikož se stále mění formát, respektive formát je vždy v jednom z těchto typů. Napadá někoho, jak tyto stringy dokázat přepočíst na počet vteřin a byl by ochoten se podělit? Děkuji mnohokrát a přeji hezký zbytek dne |
||
Radek9 Profil |
#2 · Zasláno: 12. 3. 2022, 10:36:26
Stačí to rozsekat regulárem a pak přenásobit a sečíst:
preg_match('/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/', $str, $match); $seconds = (int)($match[1] ?? 0) * 3600 + (int)($match[2] ?? 0) * 60 + (int)($match[3] ?? 0); |
||
slon_cz Profil |
#3 · Zasláno: 12. 3. 2022, 13:37:47
Skvěle, to je to co jsem hledal, děkuji!
|
||
Časová prodleva: 3 roky
|
0