Autor | Zpráva | ||
---|---|---|---|
mackopu Profil |
#1 · Zasláno: 18. 9. 2006, 12:37:26 · Upravil/a: mackopu
Sháním postup pro výpočet věku na roky, měsíce a dny. Zatím jsem našel jen skript, který vypíše zaokrouhleně roky, nebo počet uplynulých dnů. Určitě by ovšem vypadal líp výstup: "Od vašeho narození uplynulo 30 let, 2 měsíce a 3 dny.". Nevíte o něčem?
Data narození mám uložena v databázi ve formátu rrrr-mm-dd, ale to nebude problém převést. |
||
mila Profil |
#2 · Zasláno: 18. 9. 2006, 12:52:14
Tohle by si měl umět naprogramovat se základní matematikou. Idea by byla asi jako když odečítáš pod sebou - odečtu dny. Pokud dostanu záporné číslo, přičtu počet dní v minulém měsíci a pamatuji si jedničku. Odečtu od sebe měsíce, pokud si pamatuji jedničku tak i tu, pokud dostanu záporné číslo, přičtu dvanáct, a pamatuji si jedničku. Nakonec od sebe odečtu roky, pípadně ještě jedničku, co si pamatuji.
Na stránky to ale nedávej, nikomu to na nic není, jen to otravuje. |
||
mackopu Profil |
#3 · Zasláno: 18. 9. 2006, 12:59:28
To není na stránky pro návštěvníky, ale pro administrátora. A v tomto konkrétním případě se nejedná o výpočet věku, ale o dobu trvání členství registrovaných.
|
||
souki Profil |
#4 · Zasláno: 18. 9. 2006, 17:15:38
matematicky by to určitě šlo taky hezky, ale proč tak složitě. Pokud je v databázi tak by to mělo jít jednoduše jako NOW()-datum - jak je to přesně si radši najdi....
Pokud je to jen v php, tak si obě data převed na vteřiny - třeba přes strtotime - odečti a převed zase na dny třeba pomocí date() |
||
Bubák Profil |
#5 · Zasláno: 18. 9. 2006, 18:57:35 · Upravil/a: Bubák
souki
To ti bude dávat odlišné výsledky vlivem různé délky měsíců a přestupných let. |
||
koudi Profil |
#6 · Zasláno: 18. 9. 2006, 19:20:30
A co třeba funkce timediff?
|
||
mackopu Profil |
#7 · Zasláno: 19. 9. 2006, 08:38:43
TIMEDIFF moje verze MYSQL nepodporuje - to by pak bylo snadné, že.
|
||
Časová prodleva: 9 měsíců
|
|||
Mike Profil |
#8 · Zasláno: 14. 6. 2007, 21:05:28 · Upravil/a: Mike
function get_age($birth)
{ $arr = explode ("-", $birth); $rok = $arr[0]; $mesic = $arr[1]; $den = $arr[2]; $nowdate = date("Ymd"); $birthday = $rok.$mesic.$den; $age = floor(($nowdate-$birthday)/10000); return $age; } edit: jo je to trochu pozdní ale tak třeba to někomu pomůže btw ted by to mělo fungovat úplně |
||
bukaj Profil |
#9 · Zasláno: 14. 6. 2007, 21:08:07
Mike
nic proti, ale nezdá se ti tvá odpověď trochu pozdní? :) |
||
mackopu Profil |
#10 · Zasláno: 15. 6. 2007, 09:17:32
Pozdě, ale přece :-)
Přikládám řešení, které mi zatím fungovalo bez chyby: function UrciVek($vstup) |
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0