it-swarm-eu.dev

Rozdíly mezi zpracováním data a časového pásma

Existuje několik možností manipulace s časovým pásmem, časovým pásmem webu, časem data, časovým pásmem uživatele, UTC a bez převodu časového pásma. Jaké jsou mezi nimi rozdíly?

Jedním z případů by bylo televizní vysílání, kde by všichni na světě zažili současně. Bylo by správné používat časové pásmo uživatele? Pokud by provozovatel vysílání umístil 20:00 odpoledne při pobytu v New Yorku, někdo v Kalifornii by to zažil v 17:00.

Nebo se v New Yorku děje slam poezie a kdokoli, kdo to chce zažít, bude muset být fyzicky tam v 20:00, což znamená, že by se to mohlo stát v 17:00 v Kalifornii, ale na tom nezáleží osoba v Kalifornii. Záleží na tom, že jsou na místě v 20:00 v New Yorku, takže čas by se neměl měnit bez ohledu na to, kde se uživatel nachází, nebo v kolik hodin v jeho časovém pásmu se děje slam poezie.

10
Adam S

Stránka dokumentace modulu Date popisuje rozdíl mezi 5 možnostmi celkem dobře.

Z této stránky:

Pro manipulaci s časovým pásmem pole existuje 5 různých možností:

  1. Časové pásmo webu - Při zadávání dat do pole se předpokládá, že zadaná data jsou v časovém pásmu webu. Když jsou data uložena do databáze, jsou převedena na UTC. Když jsou data načtena z databáze, jsou převedena do časového pásma webu pro anonymní uživatele nebo do časového pásma uživatele pro přihlášené uživatele, když je povoleno uživatelem konfigurovatelné časové zóny.
  2. Časové pásmo data - Je-li tato možnost povolena, do pole datum se přidá výběrové pole pro výslovné určení časového pásma pro zadané datum. Když je datum uloženo do databáze, není převedeno a informace o časovém pásmu jsou uloženy s datem. Při načtení z databáze se neprovádí žádná konverze a datum se zobrazí přesně tak, jak bylo zadáno.
  3. Časové pásmo uživatele - Při zadávání dat do pole se předpokládá, že zadaná data jsou v časové zóně uživatele. Když jsou data uložena do databáze, jsou převedena na UTC. Když jsou data načtena z databáze, jsou převedena do časového pásma webu pro anonymní uživatele nebo do časového pásma uživatele pro přihlášené uživatele, když je povoleno uživatelem konfigurovatelné časové zóny.
  4. [~ # ~] utc [~ # ~] - Při zadávání dat do pole se předpokládá, že zadaná data jsou v časovém pásmu UTC. Když jsou data uložena do databáze, jsou převedena na UTC (např. Není nutná žádná konverze). Když jsou data načtena z databáze, jsou převedena do časového pásma webu pro anonymní uživatele nebo do časového pásma uživatele pro přihlášené uživatele, když je povoleno uživatelem konfigurovatelné časové zóny.
  5. Žádná konverze časového pásma - Zadané datum není při uložení do databáze převedeno. Při načtení z databáze NENÍ konvertována data a jsou zobrazena přesně tak, jak byla zadána.
13
jhedstrom