Jak mogę uzyskać datę w formacie rrrr-mm-dd na podstawie daty ISO 8601 ?
Moja data 8601 to
2013-03-10T02:00:00Z
Jak mogę uzyskać następujące informacje?
2013-03-10
javascript
date
neeraj
źródło
źródło
date.split("T")[0]
zrobiOdpowiedzi:
Spróbuj tego
Aktualizacja:-
Jak wskazano w komentarzach, aktualizuję odpowiedź, aby w razie potrzeby wypisać zera wiodące dla daty i miesiąca.
źródło
Po prostu przytnij ciąg:
Lub jeśli potrzebujesz tylko daty poza ciągiem.
źródło
YYYYY-MM-DD
w roku 10000. Aby tego uniknąć, możesz podzielić naT
znak zamiast. (Patrz en.wikipedia.org/wiki/Year_10,000_problem )Możesz sprawdzić Moment.js , Luxon , date-fns lub Day.js, aby łatwo manipulować datami.
Lub po prostu wyodrębnij pierwszą część łańcucha ISO, która zawiera już to, czego chcesz. Oto przykład, dzieląc na
T
:źródło
Moment.js zajmie się formatowaniem daty za Ciebie. Oto, jak dołączyć go za pomocą tagu JavaScript, a następnie przykład użycia Moment.js do sformatowania daty.
źródło
moment
to całkiem spora biblioteka, której można używać tylko do formatowania. Zamiast tego używaj daty-fns, która jest znacznie mniejsza i zapewnia taką samą funkcjonalność..toISODateString()
, bo to bardzo częsty przypadek ...Oto, co robię, aby uzyskać tylko datę:
źródło
Moment.js to dość duża biblioteka do pojedynczego wykorzystania. Polecam
date-fns
zamiast tego. Oferuje w zasadzie największą funkcjonalność Moment.js przy znacznie mniejszym rozmiarze pakietu i wielu plikachformatting options
.Należy zauważyć, że ponieważ jest to format czasu ISO 8601 , przeglądarka zazwyczaj konwertuje czas UTC na lokalną strefę czasową. Chociaż jest to prosty przypadek użycia, w którym prawdopodobnie możesz to zrobić
'2013-03-10T02:00:00Z'.substring(0, 10);
.W przypadku bardziej złożonych konwersji
date-fns
jest to droga.źródło
źródło
Posługiwać się:
źródło
Spowoduje to wyświetlenie daty w formacie RRRR-MM-DD:
źródło
Podaj datę w obiekcie daty:
źródło
Dla wszystkich, którzy używają dzielenia, wycinania i innych prób uzyskania daty opartych na ciągach, możesz ustawić się na niepowodzenia związane ze strefą czasową!
Ciąg ISO ma strefę czasową Zulu i datę zgodną z tą strefą czasową, co oznacza, że może używać daty dzień wcześniej lub później niż rzeczywista strefa czasowa, którą musisz wziąć pod uwagę w swoim łańcuchu transformacji.
Zobacz ten przykład:
źródło
Jeśli masz obiekt daty:
lub
źródło
Aby przedłużyć na rk rk „s rozwiązanie : W przypadku, gdy chcesz format zawierać czas, można dodać
toTimeString()
do łańcucha, a następnie rozebrać część GMT, co następuje:źródło
Użyłem tego:
Źródło: http://gooplus.fr/en/2017/07/13/angular2-typescript-isodate-to-html-date/
źródło
źródło
źródło
Lepsza wersja odpowiedzi autorstwa @Hozefa .
Jeśli
date-fns
zainstalowałeś, możesz użyć funkcji formatISOźródło
Użyj poniższego kodu. To jest dla ciebie przydatne.
źródło