Časové zóny
Plugin časové zóny přidává do API dayjs metody .tz, .tz.guess a .tz.setDefault pro analýzu a zobrazení dat a časů v různých časových zónách.
var utc = require('dayjs/plugin/utc');
// import utc from 'dayjs/plugin/utc' // ES 2015
var timezone = require('dayjs/plugin/timezone'); // závisí na pluginu utc
// import timezone from 'dayjs/plugin/timezone' // ES 2015
dayjs.extend(utc);
dayjs.extend(timezone);
const timestamp = '2014-06-01 12:00';
const tz = 'America/New_York';
const dayjsLocal = dayjs(timestamp); // předpokládá se UTC
//dayjsLocal.toISOString() -> 2014-06-01T12:00:00.000Z
//dayjsLocal.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T12:00:00
const dayjsAmerica = dayjsLocal.tz(tz); // existující čas je považován za UTC
//dayjsAmerica.toISOString() -> 2014-06-01T12:00:00.000Z
//dayjsAmerica.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T08:00:00
const dayjsAmericaKeep = dayjsLocal.tz(tz, true); // existující čas je považován za lokální čas
//dayjsAmericaKeep.toISOString() -> 2014-06-01T16:00:00.000Z
//dayjsAmericaKeep.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T12:00:00Zjištění časové zóny uživatele
dayjs.tz.guess();Analýza data a času v konkrétní časové zóně
const d1 = dayjs.tz('2013-11-18 11:55', 'Asia/Taipei');
d1.format(); // => 2013-11-18T11:55:00+08:00
d1.toISOString(); // => 2013-11-18T03:55:00.000ZPřevod data a času do jiné časové zóny
const d2 = dayjs.utc('2013-11-18 11:55').tz('Asia/Taipei');
d2.format(); // => 2013-11-18T19:55:00+08:00
d2.toISOString(); // => 2013-11-18T11:55:00.000ZNastavení a resetování výchozí časové zóny (používá se s .tz)
// Nastavení výchozí časové zóny
dayjs.tz.setDefault('America/New_York');
// Resetování výchozí časové zóny na systémovou časovou zónu
dayjs.tz.setDefault();Rozdíly oproti Moment.js
V Moment.js, použití výchozí časové zóny způsobí, že moment(dateValue) použije tuto časovou zónu. Nicméně, moment.tz(dateValue, timezone) stále vyžaduje druhý parametr (název časové zóny).
Na rozdíl od toho, dayjs(dateValue) vždy používá lokální časovou zónu, i když je použito dayjs.tz.setDefault. Pouze dayjs.tz(dateValue) (bez druhého parametru) používá výchozí časovou zónu.
