Autor | Zpráva | ||
---|---|---|---|
M** Profil * |
#1 · Zasláno: 21. 10. 2007, 20:55:15
Jak pomocí PHP vypočítám, kolik mi je let?
Např.: $narozeni=25.3.1995; ? ? Určitě se bude potřebovat nějaké datum narození, dnešní datum, a pak to nějak odečíst. Ale jak? Prosím, poraďte... |
||
Str4wberry Profil |
#2 · Zasláno: 21. 10. 2007, 21:01:02
|
||
niCe Profil |
#3 · Zasláno: 21. 10. 2007, 21:06:01
Zkus tohle http://interval.cz/clanky/php-jak-pracovat-s-datem-a-casem/
Budeš muset zjistit aktuální čas pomocí Time() a pak budeš muset převést datum narození do toho samého formátu (tj. do formátu sekund od r. 1970 - bohužel ale nevim jak) Pak zjistíš rozdíl v sekundách a jednoducho si to převedeš na roky $stari = ceil($rozdil / (3600*24*365)); Ale nevím jak zařídit ten první krok - tj převést 25.3.1995 na počet sekund od r. 1970, snad poradí někdo další :) niCe |
||
Mireczech Profil |
#4 · Zasláno: 21. 10. 2007, 21:24:15 · Upravil/a: Mireczech
int mktime ( [int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst]]]]]]] )
vraci pocet sekund od zacatku epochy |
||
Keilew Profil |
#5 · Zasláno: 21. 10. 2007, 21:37:45
Nezapomeňte na přestupné roky!
|
||
nightfish Profil |
#6 · Zasláno: 21. 10. 2007, 21:55:19
Mireczech
co vrátí mktime pro datum narození 1. 4. 1965? |
||
tajny spion Profil |
#7 · Zasláno: 22. 10. 2007, 09:46:55
nightfish
Error? |
||
nightfish Profil |
#8 · Zasláno: 22. 10. 2007, 10:07:59
tajny spion
však si to vyzkoušej :-) error to není, ale správná hodnota taky ne |
||
DFly Profil |
#9 · Zasláno: 22. 10. 2007, 10:35:24
nightfish error to je, ale jen na Win :-)))
BOHUZEL casova knihovna win neumi pocitat do minusu !!! :-((( musel jsem hledat jinou cestu kdyz jsem jeden intranet prehazoval na Win stroj |
||
nightfish Profil |
DFly
hmm, tak to že se to chová jinak na Windows a na Linuxu jsem netušil, díky za info (a jak se dívám tak mi to v PHP 5.2.4 už taky funguje manuálová stránka k tomu říká: Before PHP 5.1.0, negative timestamps were not supported under any known version of Windows and some other systems as well. Therefore the range of valid years was limited to 1970 through 2038. V PHP starším než 5.1.0 nebyly záporné timestampy podporovány pod žádnou známou verzí Windows a také některých dalších systémech. Proto byl rozsah platných letopočtů omezen od 1970 do 2038. |
||
Časová prodleva: 7 dní
|
|||
niCe Profil |
#11 · Zasláno: 29. 10. 2007, 14:50:12
Netušim, jestli je téma ještě aktuální, ale holt se to musí úplně obejít bez mktime.
Vezmu aktuální čas, převedu ho na DD MM YY Pro přesnost na roky pak stačí udělat rozdíl mezi aktuálním YY a uvedeným rokem narození. V případě, že ještě nebyly narozeniny (zjistíme tak, že součin data a měsíce narození je menší než součin DD a MM) odečteme 1 rok. Zkouška: narození 25. 11. 1986 dnes 29. 10. 2007 První krok: 21 let. Ale... 25*11 je větší než 29*10, proto odečteme 1 a máme 20. Nekecam? |
||
Str4wberry Profil |
#12 · Zasláno: 29. 10. 2007, 15:15:00
niCe
Proč jsi raději nepřečteš stránku, kterou jsem odkázal a řešíš tady „nesmrtelnost chrousta“? |
||
tiso Profil |
#13 · Zasláno: 29. 10. 2007, 15:33:44
niCe (zjistíme tak, že součin data a měsíce narození je menší než součin DD a MM)
A na toto si prišiel ako? Schválne aký vek to bude hádzať niekomu kto je narodený 2. 2. v dňoch 31.1 alebo 1.3? Správny? |
||
Časová prodleva: 17 let
|
0