Unix idő és unix timestamp (mysql, php, javascript)
Hagyja razberemsyas azokat, amelyek a szükséges ideig Unix és Unix időbélyeg, valamint nekik világos koncepciót.
Megpróbálok egy példát, hogy mi a különbség e két fogalom között.
Abban az időben az írás ezen a poszton nekem, Unix idő egyenlő 1346765877.
Őszintén szólva, sok értelme elválasztani a két fogalom, véleményem szerint, nem, de még mindig hasznos, hogy egy ötlet, mert ez jelenti a Unix Time. hanem hasznos megérteni, hogy a lehető legnagyobb számú másodperc 1970 óta van egy határ!
Vége Unix korszaka jön 2038
Tény: A maximális bináris szám 32 bites rendszerek száma 01111111 11111111 11111111 11111111 helyezi a tízes számrendszerben, megkapjuk a számot 2147483647.
Ezen elmélet a szemléltető példa nagyon egyszerű:
- Nyissa meg a szabványos Windows számológépet, nyomja meg az ALT + 3. hogy kapcsolja be a fajta fordított mérnöki;
- Telepítse a 4 byte módban, tizedes bemenet típusa;
- Írja be a számot 2147483647;
- Megjegyzés képviseletét a számot a bináris rendszerben;
- Hozzáadás számú;
- hozzáadjuk az eredmény az lesz, negatív szám!
Ha továbbra is hozzá egyet, akkor kapjuk a ciklusos áramkört.
Sőt, akkor nem lehet szomorú, mert a fejlesztők a számítógépes rendszerek egyre fogadnak 64 bites architektúrák széles körben használják. Higgyük, hogy lesz idő, hogy 2038.
Munka unix timestamp
Egy nagyon fontos pont, ha foglalkoznak unix timestamp a php és a mysql, az kell, hogy tisztán a előnyeiről és hátrányairól ilyen időpont formátum.
Például TIMESTAMP nem szoktam hozzá a feladat a történelmi események, illetve események a távoli jövőben. Az egész dátumok korlátozódik az időszak 1970-től 2038 elején. Ha megad egy dátumot, amely túlmutat 2038, akkor nem helyesen értelmezni a 32 bites rendszert.
Felismerve ezt a korlátozást, akkor felmerül a logikus kérdés: „Miért zavarja ábrázolásából dátumot másodperc alatt?”
Mikor használjak Unix időbélyeg
Hogy képviselje egy időben a hagyományos rendszerben számunkra mérni, tart 8 bájt, és unix timestamp fél - 4 byte.
Megtakarítási adatmennyiség, véleményem szerint, a fő és a vitathatatlan előnye a használata Unix Time.
Ezen kívül számos hasznos árnyalatok állnak rendelkezésre, ha a UNIX időbélyeg mysql. És mivel minden információt tárolni kell az adatbázis-kiszolgálón, és ő viszont számos előnyt, ha dolgozik UNIX dátum, a választás mellett unix timestamp lehet megfelelően igazolja az alábbi rendelkezések.
A MySQL, és így a megfelelő időbélyeg adattípus dolgozni a formátum unix idő beállítása, hogy mi azonnal megkapjuk hasznos előny a hagyományos formátumok: dátum és dátumidőpont. Ennek előnye, hogy a következő lépéseket, hogy egy új rekordot az asztalra, egy oszlopot az adatok típusát automatikusan kitölti. Ez azt jelenti, hogy meg tudjuk menteni nem csak az adatok mennyisége, hanem a feldolgozási idő a webszerver.
Ahhoz, hogy erősítse a szavakat tettek jelentenek a következő probléma: a regisztráció során egy új felhasználót a rendszer, akkor meg kell adni a dátumot bekerül az adatbázisba.
Ha a mező típusát tárolja a dátumot a táblázatban - DATETIME. A kérést a PHP script így néz ki:
Van is egy mínusz. ha a időbélyegmező típusszám, automatikusan frissül, csak az elsőt.
Van-e értelme használni INT helyett az időbélyeg
Sok programozó dolgozik unix timestamp segítségével integer formátumban int (11). Ez nem egy racionális megközelítés a problémát, mert az időbélyeg MySQL számos olyan hasznos funkciók, amik a sebesség vele. Ezért tartja, az időbélyegző INT, akkor megfosztjuk magunkat mindenféle szerver támogatja ezt a formátumot. Ez nagyjából ugyanaz, mint a boltban id típusú varchar (11).
Van azonban egy igazolás tároló unix timestamp az INT. Amikor vándorló adatbázisok különböző DBMS típusú konfliktus keletkezhet, azaz időbélyeg típusú ismeretlenek lehetnek az adatbázisba. Ebben az esetben a használatra int lesz előny, mivel ez a forma áll rendelkezésre az összes adatbázist.
Rövid leírása MySQL naptár típusok
TIMESTAMP - az adatok típusát, hogy tárolja a dátumot és az időt. Az adatok tárolása a másodpercek számát, mivel az elején a „korszaka Unix”. Értéktartomány: 1970-01-01 00:00:00 - 2038/12/31 00:00:00. Elfoglalt 4 byte.
DATE - adattípus tárolására dátumokat. Tartomány: 1000/01/01 - 9999-12-31. Tart 3 bájt.
DATETIME - adattípus tárolni a dátumot és az időt. Tartomány: 1000/01/01 00:00:00 - 9999-12-31 00:00:00. 8 bájt és tárolt számként YYYYMMDDHHMMSS./p>
ÉV - az adattípus tárolására évben. A tartomány 1901 - 2155. Tart 1 byte.
TIME - az adatok típusát, hogy tárolja az időt. Tartomány: -828: 59: 59-828: 59: 59. Tart 3 bájt.
Translation dátum unix
Itt az ideje, hogy néhány hasznos funkciók át a dátumot unix timestamp és vissza unix-idő olvasható dátumot.