Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę wstawić rzeczywisty czas zdarzenia do bazy danych za pomocą php mysqli?

Zamiast bawić się strefami czasowymi, dlaczego po prostu tego nie zrobić

ALTER TABLE `your_table`
  CHANGE `date_added` `date_added`
  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

To się zmieni Twoja kolumna z kolumny DATE do kolumny TIMESTAMP , konwertując w trakcie wszystkie daty na ich odpowiednie sygnatury czasowe UTC.

Po wstawieniu nowego wiersza użyje bieżącego znacznika czasu jako wartość . Znaczniki czasu są zawsze w UTC, więc nie musisz zmieniać strefy czasowej na serwerze MySql ani podawać daty podczas wstawiania nowego wiersza.

Jeśli nie możesz lub nie chcesz zmienić swoich kolumn, możesz po prostu wybrać znacznik czasu za pomocą

SELECT UNIX_TIMESTAMP('date_added') FROM your_table;

Dla Twojego TimeAgo możesz po prostu zrobić

$now = new DateTime;
$dateAdded = new DateTime("@$yourTimestampFromDb");
$dateAdded->setTimezone($now->getTimezone());
$timeSinceAdded = $dateAdded->diff($now);

Gdy podasz znacznik czasu do DateTime, zawsze użyje on czasu UTC, niezależnie od ustawionej domyślnej strefy czasowej serwera. W związku z tym musisz przekonwertować $dateAdded do domyślnej strefy czasowej (jak pokazano powyżej) lub przekonwertuj $timeSinceAdded do UTC.

Aby zmienić datę i godzinę na strefę czasową aktualnie odwiedzanego użytkownika,

W każdym razie po prostu zmień oba DateTimes na tę strefę czasową. Można to łatwo zrobić za pomocą setTimezone() .

$timeSinceAdded będzie to DateInterval obiekt, którego możesz użyć w ten sposób

echo $timeSinceAdded->format('%a total days');

Proszę zapoznać się z linkami, aby uzyskać więcej informacji, na przykład na temat dostępnych modyfikatorów formatu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaktualizować tabelę przestawną za pomocą Eloquent w laravel 5

  2. SELECT nie działa w node.js

  3. Mysql poprawia SELECT prędkość

  4. JSON_CONTAINS_PATH() Przykłady w MySQL

  5. Połącz się z bazą danych MySQL online z localhost