Nástroje používateľa

Nástoje správy stránok


dev:omega:events

Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Both sides previous revision Previous revision
Next revision
Previous revision
dev:omega:events [2014/11/02 21:59]
Roman Sališ [Súhrn]
dev:omega:events [2017/10/21 09:13] (aktuálne)
Roman Sališ [Práca s termínmi]
Riadok 4: Riadok 4:
  
 Termíny v SystemOmega sú ukladané v tabuľke **``st2_events``**. ​ Termíny v SystemOmega sú ukladané v tabuľke **``st2_events``**. ​
-Začiatok a koniec termínu je uložený ako [[wp>​UTC]] ((Koordinovaný svetový čas alebo Coordinated Universal Time)) unixový čas ((Počet sekúnd od 1.1.1970)). Dalo by sa aj povedať, že sú uložené v časovom pásme ''​+0000''​.+Začiatok a koniec termínu je uložený ako [[wp>​UTC]] ((Koordinovaný svetový čas alebo Coordinated Universal Time)) unixový čas ((Počet sekúnd od 1.1.1970)). Dalo by sa aj povedať, že sú uložené v časovom pásme ''​+0000''​. Je to prevencia proti problémom spojených so striedaním zimného a letného času
  
 Každá technológia,​ v ktorej sú umiestené termíny, má nastavené časové pásmo (v minútach), v ktorom sa nachádza. Napríklad technológie umiestnené v Bratislave majú časové pásmo ''​+0100'',​ teda v databáze je uložené ''​+60''​ minút. Každá technológia,​ v ktorej sú umiestené termíny, má nastavené časové pásmo (v minútach), v ktorom sa nachádza. Napríklad technológie umiestnené v Bratislave majú časové pásmo ''​+0100'',​ teda v databáze je uložené ''​+60''​ minút.
Riadok 50: Riadok 50:
 ==== MySQL ==== ==== MySQL ====
  
 +=== Prevod na lokálny dátum ===
 +<code mysql space=2>
 +SET `event_local_date_start` := 
 +  CONVERT_TZ(
 +    FROM_UNIXTIME(`event_date_start` + (`event_tzo` * 60)), 
 +    @@session.time_zone, ​
 +    "​+00:​00"​
 +  );
 +</​code>​
  
 +
 +=== Prevod z lokálneho dátumu ===
 +<code mysql space=2>
 +SET `event_date_start` := 
 +  UNIX_TIMESTAMP(
 +    CONVERT_TZ(
 +      DATE_SUB(`event_local_date_start`,​ INTERVAL `event_tzo` MINUTE), ​
 +      "​+00:​00",​ @@session.time_zone
 +    )
 +  );
 +</​code>​
 +
 +Druhá metóda, snáď rýchlejšia:​
 +<code mysql space=2>
 +SET `event_date_start` := 
 +  UNIX_TIMESTAMP(
 +    CONVERT_TZ(
 +      `event_local_date_start`, ​
 +      "​+00:​00", ​
 +      @@session.time_zone
 +    )
 +  ) - (`event_tzo` * 60);
 +</​code>​
dev/omega/events.1414961966.txt.gz · Posledná úprava: 2014/11/02 21:59 od Roman Sališ