php dátum probléma
Sziasztok! Apró problémám támad, ami nekem elég hatalmas, de hátha tudja vki a választ.
$actage=50;
$date = date('Y-m-d');
$newdate = strtotime ( '+'.$actage.' year' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-d' , $newdate );
Ennek a pár sornak annyi lenne a lényege, hogy az aktuális dátumhoz adjon hozzá annyi évet, amennyi a $actage-ben meg van határozva. Ez működik abban az esetben ha 0 < $actage < ~25 . Ha $actage értéke már 30, akkor a $newdate értéke 1970-01-01 lesz.
Tehát egy bizonyos pontig elbírja, utána már nem bír nagy számokkal számolni.
Légyszi, aki tud segítsen!!!
Üdv
Kori
■ $actage=50;
$date = date('Y-m-d');
$newdate = strtotime ( '+'.$actage.' year' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-d' , $newdate );
Ennek a pár sornak annyi lenne a lényege, hogy az aktuális dátumhoz adjon hozzá annyi évet, amennyi a $actage-ben meg van határozva. Ez működik abban az esetben ha 0 < $actage < ~25 . Ha $actage értéke már 30, akkor a $newdate értéke 1970-01-01 lesz.
Tehát egy bizonyos pontig elbírja, utána már nem bír nagy számokkal számolni.
Légyszi, aki tud segítsen!!!
Üdv
Kori
32 bit
mktime
jó tudni...
Tehát ha mondjuk 2040-ben lefuttatnám hogy:
Amúgy azt nézem most hogy minden mktime-ban meg adják a date-t is pl így:
igen
és most?
64-es php-nak mi a határa? Ugye akkor már nem fogok élni? :D
ha
Szerintem ne azt nézd meg hogy x64 van-e a gépen hanem hogy Poetro kódjára nálad túlcsordul-e.
Egyébként nem a "PHP 32bit" határa hanem a megszokott 32bites ábrázolás határa. Gyors számolás után a 64biten tárolt dátum határa 292471210647-es év lesz, szóval szerintem már nem fogsz élni:-)
De ettől függetlenül azt tanácsolom hogy kezdj átállni minden PHP-és függvényről az osztály alternatívájára. Mondom ezt mert a PHP-ét fejlesztőknek az álma hogy a PHP-ét egy teljesen objektum orientált nyelvé alakítsák át. (és gondolom előbb-utóbb megszüntetik ezeknek a függvényeknek a támogatását)
Példa
És...
Amúgy most ennek csak a 64 bit mizéria az oka vagy van amiért alapból nem ajánlatos a date-t használni?
DateTime / DateTimeZone
hááát
Ha én a mai dátumot és aktuális időt akarom kiiratni így: 2010-08-30 16:02:30 akkor azt hogy csinálom meg?
További tesztek
na neee
Nah szóval erre
és nem ez:
2,
Most tényleg ebből:
neígy
najó...
Ne foglakozz a dátum formátumokkal tárolásnál
Persze nyilván valóan ennek a "módszernek" is megvan a maga hátránya mint minden másnak úgy általában :) Ha például sok különböző (és itt a különbözőn van a hangsúly) dátumot kell kilistáznod, akkor azokat előtte mindet át kell alakítani emberi "fogyasztársa" alkalmas stringgé, ami ugye sokkal több idő, mint ha eleve stringeket olvasnál ki a db-ből. Tehát valamit valamiért. Vagy a szerver oldali könnyű (és gyors) kezelhetőség mellett voksolsz, vagy pedig a minél gyorsabb megjelenítés mellett :)
időzonák
1, az egyik hogy ha az időzónával is akarsz foglalkozni akkor problémás lehet.
2, adatbázisban integer típussal problémás (de nem lehetetlen) számolni az idővel (pl hozzáadni x napot).
Persze mindenki úgy használja ahogy neki könnyebb.
Valóban
A problémás számolás, az megint egy szubjektív dolog. Mert nekem például sokkal könnyebb számokat összeadogatni, mint sztringekkel bajlódni, még akkor is ha mindig el kell játszani, a 60*60*24*etc... fejszámolást :)
De mint mondtad, kinek hogy :)
nem egyszerübb így?
Időszámítás