Всички сме използвали времеви отпечатъци в laravel, по-често, когато използваме created_at и updated_at.

Напоследък работех по проект и попаднах на тази миграция:

Тук имаме timestamp(), datetime() и timestamps(), което е просто по-кратък начин на писане:

$table->timestamp('created_at')->nullable();

$table->timestamp('updated_at')->nullable();

И аз се чудех: каква е разликата между timestamp и datetime и кога да използвам кое🤔?

Ако се върнете към MySQL, ще видите, че datetime() използва DATETIME като тип колона на DB. timestamp() използва TIMESTAMP като тип колона в DB.

Прилики

  1. И двете съхраняват данните във формат YYYY-MM-DD HH:MM: SS.
  2. И двете включват дата, както и час.
  3. Автоматичната инициализация може да се случи и за двете.
  4. И двете променят данните, докато актуализират записа с текущата дата и час според ограничението.
  5. И двете могат да имат части от секунди с точност до 6-цифрени микросекунди.

Разлики

  1. Поддържаният диапазон за DATETIME е от 1000–01–01 00:00:00 до 9999–12–31 23:59:59, докато TIMESTAMP е от 1970–01–01 00:00:01 UTC до 2038–01–09 03:14:07 UTC.
  2. В MySQL5+ стойността на TIMESTAMP се преобразува от текущия час в UTC и обратно, докато DATETIME не прави никакво преобразуване.
  3. TIMESTAMP се различава от текущите настройки на часовата зона, докато DATETIME остава постоянен.
  4. Данните TIMESTAMP могат да бъдат индексирани, докато данните DATETIME не могат.
  5. Заявките с DATETIME няма да бъдат кеширани, но заявките с TIMESTAMP ще бъдат кеширани.

В Laravel типът данни timestamp често се използва за полета, които представляват момент от време, като например времето за създаване или актуализиране на запис.

Типът данни datetime се използва за полета, които представляват конкретна дата и час, като например планирано събитие.

По принцип timestamp е полезно, когато трябва да запишете точното време, когато даден запис е създаден или актуализиран, докато datetime е полезно, когато трябва да запишете конкретна дата и час в определен формат.

Също така си струва да се отбележи, че Laravel предоставя удобен начин за конвертиране между формати за клеймо за време и дата и час с помощта на класа Carbon.

Чувствайте се свободни да се Абонирате за повече съдържание като това 🔔, ръкопляскайте 👏🏻 , коментирайте💬 и споделете статията с когото пожелаеш

И както винаги е било, оценявам вашата подкрепа и благодаря за четенето.