Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] timestamp - dodanie 1h
Forum PHP.pl > Forum > Przedszkole
Korjaw
Witam,

Czas serwera mysql to GMT, chcialbym ustawic jakos GMT+1

ustawiajac np
SET time_zone = '+01:00';
date_default_timezone_set('Europe/Berlin');
niestety nic sie nie zmienia

w tabeli mam taki rekord, do ktorego jest zapisywany czas GMT
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

Moze da sie dodac do tego INTERVAL ?
bostaf
SET time_zone ustawia strefę czasową dla aktywnej sesji, nie dla serwera.

Żeby sprawdzić strefę czasową serwera wydaj polecenie
  1. SELECT @@global.time_zone;

Co pokazuje? "SYSTEM"? Takie jest domyślne ustawienie - strefa czasowa serwera MySQL taka sama jak strefa czasowa systemu operacyjnego.

Można to zmienić albo edytując plik konfiguracji my.cnf dodając do niego (w sekcji [mysqld]) taką linię:

Kod
default-time-zone = '+01:00'


albo z wiersza poleceń, komendą:
  1. SET GLOBAL time_zone = '+01:00';

(przy czym to się chyba nie zachowa po restarcie serwera MySQL)

albo jako opcję procesu w trakcie uruchamiania:

Kod
--default-time-zone='+01:00'


Więcej informacji: MySQL Server Time Zone Support.

Nie polecałbym Ci dodawania interwałów do znaczników czasu podczas uaktualniania czy dodawania rekordów. To może naruszyć spójność całej bazy danych: w jednym miejscu dodasz, w innym nie i się dziwne anomalie pojawią. Wpisując i uaktualniając daty najlepiej używać funkcji NOW() - wtedy całość jest spójna. A jeśli chcesz uwzględniać strefę czasową użytkowników aplikacji to dodajesz offsety (czy to w komendach MySQL czy z poziomu PHP) dopiero wyświetlając im daty.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.