javascript - Získajte aktuálny dátum pomocou date-fns vo formáte ISO-8601


Chcem získať formát ISO-8601 poslednej hodiny:minúty:sekundy z aktuálneho dňa pomocou knižnice date-fns:

Používam: endOfDay(new Date());

Fri Sep 14 2018 23:59:59 GMT-0300

Tak pridajte toISOString(), aby ste to získali v ISO formáte: endOfDay(new Date()).toISOString()

Výsledok: 2018-09-15T02:59:59.999Z

Keď potrebujem:

2018-09-14T23:59:59.999Z

Odpoveď č. 1

2018-09-14T23:59:59.999Z nie je koniec dňa vypočítaný pomocou endOfDay(new Date());. Je o 3 hodiny skôr. "Z" znamená UTC a váš miestny časový pásmo má posun oproti UTC -0300.

Vykonaním endOfDay získate hodnotu dátumu, ktorú môžete použiť pri porovnaniach a iných výpočtoch s inými hodnotami dátumu. Je to úplný dátum s časom v miestnom časovom pásme.

Chcete si zachovať rovnaké číslo dňa vo formátovanom reťazci? Môžete formátovať dátum na reťazec ISO 8601 vo vašom miestnom časovom pásme:

format(endOfDay(new Date()), 'yyyy-MM-dd\'T\'HH:mm:ssXX')
// Prints "2018-09-14T23:59:59.999-0300" in Brazil (BRT)

formatISO(endOfDay(new Date()))
// Prints "2018-09-14T23:59:59.999-03:00" in Brazil (BRT)

Chceš získať koniec dňa s rovnakým číslom ako dnes v UTC? Ak ignoruješ skutočný koniec svojho dňa v súvislosti s inými dátumami, môžeš jednoducho skombinovať „poslednú sekundu dňa“ s „Z“:

format(new Date(), 'yyyy-MM-dd') + 'T23:59:59.999Z'
// Prints "2018-09-14T23:59:59.999Z" anywhere on Earth

POZNÁMKA: Ak používate date-fns 1.x, použite formáty yyyy-MM-DD[T]HH:mm:ssZZ a yyyy-MM-DD vo vyššie uvedených vzorcoch. Syntax sa zmenila vo verziách 2.x. Pozrite si tiež podporované vzorce, ktoré môžete prispôsobiť svojej verzii date-fns.

Odpoveď č. 2

format(endOfDay(new Date()), "yyyy-MM-dd'T'HH:mm:ss'Z'")

Táto metóda mi fungovala

Súvisiace články