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 [2015/10/13 14:53]
Roman Sališ [MySQL]
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 52: Riadok 52:
 === Prevod na lokálny dátum === === Prevod na lokálny dátum ===
 <code mysql space=2> <code mysql space=2>
-SET NEW.`event_local_date_start` := +SET `event_local_date_start` := 
   CONVERT_TZ(   CONVERT_TZ(
-    FROM_UNIXTIME(NEW.`event_date_start` + (NEW.`event_tzo` * 60)), +    FROM_UNIXTIME(`event_date_start` + (`event_tzo` * 60)), 
     @@session.time_zone, ​     @@session.time_zone, ​
     "​+00:​00"​     "​+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>​ </​code>​
dev/omega/events.1444740789.txt.gz · Posledná úprava: 2015/10/13 14:53 od Roman Sališ