Unix време и UNIX клеймото (MySQL, PHP, JavaScript)

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;

Unix време и UNIX клеймото (MySQL, PHP, JavaScript)

  • Забележка за представяне на числото в двоична система;
  • Добави в номер едно;

Unix време и UNIX клеймото (MySQL, PHP, JavaScript)

  • добавяне резултатът ще бъде отрицателно число!

Ако продължите да добавите един, а след това получи цикличен верига.

Всъщност, вие не трябва да бъде тъжен, защото разработчиците на компютърни системи все повече възприемат 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 време в четим дата.

Как да получите текущата UNIX-време