Unix време и UNIX клеймото (MySQL, PHP, JavaScript)
Нека razberemsyas тези, за които е необходимо време, Unix и Unix клеймо, както и да им даде ясна концепция.
Ще се опитам да дам един пример, за да обясни разликата между тези две понятия.
Към момента на написването на тази ми пишете, Unix време е равно на 1346765877.
Честно казано, много смисъл да се разделят двете понятия, по мое мнение, не, но тя все още е полезно да има представа, че тъй като представлява Unix Time. но също така е полезно да се разбере, че е възможно най-голям брой секунди от 1970 година насам, има лимит!
Край Unix епоха ще дойде в 2038
Факт: Максималният двоично число в 32-битови системи е броят 01111111 11111111 11111111 11111111 го поставите в десетичната система, ние получаваме броя 2147483647.
Проверка на тази теория на показания пример е много проста:
- Отворете Windows стандартен калкулатор, натиснете ALT + 3. че можете да го превърне в един вид обратен инженеринг;
- Инсталирайте режим на 4 байта, а след десетичната типа вход;
- Напишете номера 2147483647;
- Забележка за представяне на числото в двоична система;
- Добави в номер едно;
- добавяне резултатът ще бъде отрицателно число!
Ако продължите да добавите един, а след това получи цикличен верига.
Всъщност, вие не трябва да бъде тъжен, защото разработчиците на компютърни системи все повече възприемат 64 битови архитектури в широка употреба. Нека да вярваме, че те ще имат време да се 2038.
Работа с UNIX клеймото
Много важен момент, когато се занимават с UNIX клеймото на PHP и MySQL, е необходимостта да се разбере ясно плюсовете и минусите на тази дата формат.
Например, TIMESTAMP не свикне с задачата на исторически събития или събития на по-далечно бъдеще. Целият набор от датите е ограничено до периода от 1970 г. до началото на 2038. Ако зададете дата, която отива отвъд 2038, тя няма да тълкуват правилно системата за 32-битова.
Признавайки това ограничение, то повдига логичният въпрос: "Защо трябва да се занимавам с представяне на дата за секунди"
Кога трябва да използвам Unix клеймо
Да представлява едно време в конвенционална система за нас, за да го измерят, отнема 8 байта, а за UNIX клеймото половината - 4 байта.
Спестявания количество данни, по мое мнение, основният и безспорно предимство при използването на Unix Time.
Освен това, има редица полезни нюанси на разположение при работа с UNIX клеймото в MySQL. И тъй като цялата информация, трябва да се съхранява в базата данни на сървъра, а той от своя страна има редица предимства при работа с Unix времеви отпечатъци, изборът в полза на UNIX клеймото може да бъде аргументирано от следните разпоредби.
В MySQL, осигурява съответното клеймо типа данни, които да работят с формата на UNIX работно време, като че ние веднага се получи полезна предимство пред стандартния формат дата и DATETIME. Предимството е, че стъпките за добавяне на нов запис в таблицата, колона с този тип данни се попълват автоматично. Това означава, че ние може да спести не само на количеството данни, но също така и от времето за обработка на уеб сървъра.
За да подсили думите с делата представляват следния проблем: при регистриране на нов потребител в системата, ще трябва да въведете датата, на която се добавя към базата данни.
Ако типът на поле съхранява датата в таблицата - DATETIME. искането от страна на PHP скрипта ще изглежда по следния начин:
Има и минус. ако броят на тип поле TIMESTAMP, автоматично се обновява, само първия.
Има ли смисъл да се използва INT вместо клеймото
Много програмисти, работещи с UNIX клеймото, като се използват число формат инт (11). Това не е рационален подход към въпроса, защото клеймото за MySQL предлага редица полезни функции, които влияят на скоростта с него. Затова поддържането, печатът време в INT, ние се лишаваме от всякакъв вид подкрепа на сървъра този формат. Това е приблизително същата като в VARCHAR тип магазин идентификатор (11).
Въпреки това, има едно оправдание за съхранение UNIX клеймото в INT. Когато могат да възникнат мигриращи бази данни между различните видове СУБД на конфликт, т.е. тип клеймото може да е непознато за база данни. В този случай, използването вътр ще имат предимство, тъй като този формат е наличен във всички бази данни.
Кратко описание на MySQL календарни видове
TIMESTAMP - тип данни за съхранение на дата и час. Данните се съхраняват както на броя на секунди от началото на "ерата на Unix". Диапазон от стойности: 1970-01-01 00:00:00 - 12.31.2038 00:00:00. Той заема 4 байта.
DATE - тип данни за съхраняване на дати. Обхват: 01.01.1000 - 9999-12-31. Отнема 3 байта.
DATETIME - тип данни за съхранение на дата и час. Обхват: 01.01.1000 00:00:00 - 9999-12-31 00:00:00. Има 8 байта и се съхраняват като число YYYYMMDDHHMMSS./p>
ГОДИНА - тип данни за съхраняване на годината. Диапазонът е 1901 - 2155. Това отнема 1 байт.
TIME - тип данни за съхраняване на времето. Обхват: -828: 59: 59-828: 59: 59. Отнема 3 байта.
дата преводи в UNIX
Това е време да се сложи някои полезни функции за прехвърляне на датата в UNIX клеймото и гърба от UNIX време в четим дата.