javascript - Obține data curentă folosind date-fns în format ISO-8601
Vreau să obțin un format ISO-8601 pentru ultima oră:minut:secunde din ziua curentă folosind biblioteca date-fns:
Folosesc: endOfDay(new Date());
Fri Sep 14 2018 23:59:59 GMT-0300Așadar, adaugă toISOString() pentru a-l obține în format ISO: endOfDay(new Date()).toISOString()
Rezultat: 2018-09-15T02:59:59.999Z
Când am nevoie:
2018-09-14T23:59:59.999ZRăspuns #1
2018-09-14T23:59:59.999Z nu este sfârșitul zilei calculat de endOfDay(new Date());. Este cu 3 ore mai devreme. "Z" înseamnă UTC și fusul orar local are un decalaj față de UTC -0300.
Prin executarea endOfDay obții o valoare de dată, pe care o poți folosi în comparații și alte calcule cu alte valori de dată. Este o dată completă cu timp în fusul orar local.
Vrei să păstrezi aceeași valoare a zilei în șirul formatat? Poți formata data într-un șir ISO 8601 în fusul tău orar local:
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)
Vrei să ajungi la sfârșitul zilei cu același număr ca astăzi în UTC? Dacă nu ții cont de adevăratul sfârșit al zilei tale în raport cu alte date, poți pur și simplu să concatenezi „ultima secundă a zilei” cu „Z” la ea:
format(new Date(), 'yyyy-MM-dd') + 'T23:59:59.999Z'
// Prints "2018-09-14T23:59:59.999Z" anywhere on Earth
NOTĂ: Dacă utilizați date-fns 1.x, folosiți formatele yyyy-MM-DD[T]HH:mm:ssZZ și yyyy-MM-DD în modelele de mai sus. Sintaxa s-a schimbat în versiunile 2.x. Consultați de asemenea modelele suportate, pe care le puteți adapta la versiunea dvs. de date-fns.
Răspunsul #2
format(endOfDay(new Date()), "yyyy-MM-dd'T'HH:mm:ss'Z'")
Această metodă a funcționat pentru mine
