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

Next revision
Previous revision
dev:omega:events [2014/10/27 16:28]
Roman Sališ Deleted by move plugin
dev:omega:events [2017/10/21 09:13] (aktuálne)
Roman Sališ [Práca s termínmi]
Riadok 1: Riadok 1:
-====== Práca s termínami ​======+====== Práca s termínmi ​====== 
  
-===== Súhrn ===== 
  
 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 17: Riadok 17:
 Niektoré polia súvisiace s časom: Niektoré polia súvisiace s časom:
 ^ Pole                           ^ Typ            ^ Význam ​                                           ^ ^ Pole                           ^ Typ            ^ Význam ​                                           ^
-| ``event_tzo`` ​               | int            | Časové pásmo v minútach, získané z technológie ​  | +| ``event_tzo`` ​               | //int//            | Časové pásmo v minútach, získané z technológie ​  | 
-| ``event_date_start`` ​        | unsigned int   | Začiatok termínu ako UTC                         | +| ``event_date_start`` ​        ​| ​//unsigned int//   | Začiatok termínu ako UTC                         | 
-| ``event_date_end`` ​          | unsigned int   | Koniec termínu ako UTC                            | +| ``event_date_end`` ​          ​| ​//unsigned int//   | Koniec termínu ako UTC                            | 
-| ``event_local_date_start`` ​  | datetime ​      | Začiatok termínu v lokálnom čase servera ​       | +| ``event_local_date_start`` ​  ​| ​//datetime//       | Začiatok termínu v lokálnom čase servera ​       | 
-| ``event_local_date_end`` ​    | datetime ​      | Koniec termínu v lokálnom čase servera ​          |+| ``event_local_date_end`` ​    ​| ​//datetime//       | Koniec termínu v lokálnom čase servera ​          |
  
 ===== Príklad ===== ===== Príklad =====
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.1414423715.txt.gz · Posledná úprava: 2014/10/28 10:44 (externá úprava)