Jak uzyskać aktualną datę w JavaScript?
javascript
date
date-formatting
Suresh Chaganti
źródło
źródło
var currentTime = new Date();
new Date()
zwraca bieżącą godzinę , a nie bieżącą datę . To rozróżnienie ma znaczenie, jeśli próbujesz porównać go z inną datą, która nie ma elementu czasu (tj. Jest o północy).Odpowiedzi:
Służy
new Date()
do generowania nowegoDate
obiektu zawierającego bieżącą datę i godzinę.To da ci dzisiejszą datę w formacie mm / dd / rrrr.
Po prostu zmień
today = mm +'/'+ dd +'/'+ yyyy;
format na dowolny.źródło
01
,02
...,09
Date.prototype.toLocaleDateString()
metoda jest bardziej elastycznym rozwiązaniem. Jest częścią JavaScript od ECMAScript 5.1 i jest dobrze obsługiwany przez wiecznie zielone przeglądarki. MDN:toLocaleDateString()
Użyj tej
replace
opcji, jeśli zamierzasz ponownie użyćutc
zmiennej, np.new Date(utc)
Ponieważ Firefox i Safari nie rozpoznają daty z myślnikami.źródło
toUTCString()
zwraca jako utc datetime.moment( new Date().toJSON().slice(0, 10) )
Jeśli chcesz czegoś prostego dla użytkownika końcowego ...
Also, fixed a small suffix issue in the first version below. Now properly returns suffix.
Ta aktualizacja jest dostępna w
2wersjach, wciąż stosunkowo niewielkich, choć nie tak małych jak moja powyższa, oryginalna odpowiedź. Jeśli chcesz bardzo małe, idź z tym.Uwaga: To jest nadal mniej rozdęty niż moment.js. Chociaż moment.js jest fajny, imo, ma zbyt wiele świeckich metod, które wymagają momentu nauki, jakby był językiem. Mój tutaj używa tego samego wspólnego formatu co PHP: data .
Szybkie linki
W tym modzie znaki formatu są inspirowane przez PHP: date . Aby uzyskać pełną listę, zobacz mój plik README
Ten mod ma również znacznie dłuższą listę gotowych formatów. Aby użyć gotowego formatu, wystarczy wprowadzić jego nazwę klucza.
dateFormat(new Date(), 'pretty-a');
Jak możesz zauważyć, możesz użyć podwójnego,
\
aby uciec od postaci.źródło
Najkrótszy możliwy.
Aby uzyskać format taki jak „2018-08-03”:
Aby uzyskać format taki jak „8/3/2018”:
Możesz również przekazać ustawienia regionalne jako argument, na przykład
toLocaleDateString("sr")
itp.źródło
Jeśli chcesz tylko daty bez informacji o czasie, użyj:
źródło
Spróbuj tego:
Wynik będzie podobny
źródło
Jeśli szukasz bardziej szczegółowej kontroli nad formatami dat, zdecydowanie polecam sprawdzenie momentjs. Wspaniała biblioteka - i tylko 5 KB. http://momentjs.com/
źródło
Możesz użyć moment.js: http://momentjs.com/
źródło
moment().format("L")
szanować aktualne ustawienia regionalne.Aby podzielić go na kroki:
(new Date()).toString()
daje „Pt 28 czerwca 2013 15:30:18 GMT-0700 (PDT)”(new Date()).toString().split(' ')
dzieli powyższy ciąg na każdą spację i zwraca tablicę w następujący sposób: [„Pt”, „Jun”, „28”, „2013”, „15:31:14”, „GMT-0700”, „(PDT)” ](new Date()).toString().split(' ').splice(1,3).join(' ')
pobiera drugą, trzecią i czwartą wartość z powyższej tablicy, łączy je spacjami i zwraca ciąg „28 czerwca 2013 r.”źródło
Date().split(' ').splice(1,3).join(' ')
Działa to za każdym razem:
źródło
Możesz także wywołać metodę
toLocaleDateString
z dwoma parametrami:Artykuł o MSDN . Więcej o tej metodzie na MDN .
źródło
new Date().toLocaleDateString("de-de")
robi dla mnie lewę.Czystsza, prostsza wersja:
Wynik różni się w zależności od lokalizacji użytkownika :
źródło
Jeśli jesteś zadowolony z formatu RRRR-MM-DD, spełni to zadanie.
new Date().toISOString().split('T')[0]
2018-03-10
źródło
Możesz użyć biblioteki Date.js, która rozszerza obiekt Date, dzięki czemu możesz mieć metodę .today ().
źródło
Możesz uzyskać bieżącą datę wywołania metody statycznej teraz w następujący sposób:
odniesienie:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
źródło
var dtToday = new Date(date.now);
Odpowiedź Varuna nie uwzględnia TimezoneOffset . Oto wersja, która:
Są
TimezoneOffset
minuty, podczas gdy konstruktor daty zajmuje milisekundy, a zatem pomnożenie przez60000
.źródło
Najkrótsza odpowiedź to:
new Date().toJSON().slice(0,10)
źródło
Wynik:
źródło
Zwróci
toISOString()
tylko aktualny czas UTC, a nie czas lokalny. Musimy ustalić datę za pomocą funkcji „.toString ()”, aby uzyskać datę wyyyy-MM-dd
formacie podobnym doAby uzyskać datę i godzinę w
yyyy-MM-ddTHH:mm:ss
formacieAby uzyskać datę i godzinę w
yyyy-MM-dd HH:mm:ss
formacieźródło
Jeśli chcesz prostego
DD/MM/YYYY
formatu, właśnie wymyśliłem to proste rozwiązanie, chociaż nie zawiera ono poprzedzających zer.źródło
też by działał
źródło
NAJNOWSZA EDYCJA: 23.08.19 Biblioteka date-fns działa podobnie jak moment.js, ale ma DUŻO mniejszą powierzchnię. Pozwala ci wybrać, które funkcje chcesz uwzględnić w projekcie, dzięki czemu nie musisz kompilować całej biblioteki, aby sformatować dzisiejszą datę. Jeśli minimalna biblioteka stron trzecich nie jest opcją dla twojego projektu, popieram zaakceptowane rozwiązanie przez Samuela Meddowsa do góry.
Zachowanie historii poniżej, ponieważ pomogło kilku osobom. Ale, dla przypomnienia, jest dość zuchwały i może złamać się bez ostrzeżenia, podobnie jak większość rozwiązań w tym poście
EDYCJA 2/7/2017 Jednowierszowe rozwiązanie JS:
Wyjaśnienie
Dowiedziałem się, że IE10 i IE Edge działają nieco inaczej… idź. z
new Date(Date.now()).toLocaleString()
wejściemZwraca IE10:
Mógłbym napisać dużą długą funkcję i FTFY. Ale naprawdę powinieneś użyć moment.js do tego. Mój skrypt po prostu to oczyszcza i daje rozwiniętą tradycyjną notację amerykańską:
> todaysDate = "March 06, 2017"
Zwraca IE EDGE:
Oczywiście nie mogło być tak łatwo. Ciąg daty Edge ma niewidoczne znaki „•” między każdym widocznym. Więc nie tylko będziemy teraz sprawdzać, czy pierwszy znak jest liczbą, ale pierwsze 3 znaki, ponieważ okazuje się, że dowolny pojedynczy znak z całego zakresu dat będzie ostatecznie kropką lub ukośnikiem w pewnym momencie. Aby uprościć sprawę , wystarczy .slice () pierwsze trzy znaki (mały bufor dla przyszłych shenaniganów), a następnie sprawdź liczby. Należy prawdopodobnie zauważyć, że te niewidoczne kropki mogą potencjalnie pozostać w twoim kodzie. Być może skopałbym to, jeśli masz większe plany niż tylko wydrukowanie tego ciągu na swój widok.
∴ zaktualizowany one-liner:
To do bani czytać. Co powiesz na:
ORYGINALNA ODPOWIEDŹ
Mam dla ciebie liniówkę:
i
[1]
da ci porę dnia.źródło
Możesz tego użyć
HTML jest
źródło
Jeśli używasz jQuery. Wypróbuj tę jedną wkładkę:
Oto konwencja formatowania daty
Oto odwołanie do jpickera datepicker
źródło
Prostym sposobem na osiągnięcie tego (biorąc pod uwagę bieżącą strefę czasową, korzystając z formatu ISO rrrr-mm-dd) jest:
Zwykle jest to dość uniwersalny format daty i w razie potrzeby można go przekonwertować na czystą wartość daty:
źródło
Możesz to sprawdzić
Zobacz dokumentację konstruktora Date (). połączyć
źródło
O co w tym wszystkim chodzi .. Najczystszym sposobem na to jest
var currentDate=new Date().toLocaleString().slice(0,10);
źródło
3/4/2018,
, lepiej użyćnew Date().toJSON().slice(0,10)
..slice(0,10)
To może ci pomóc
Spowoduje to wydrukowanie bieżącej daty w formacie dd / MM / rrrr
źródło
Dobrze jest uzyskać sformatowaną datę
źródło
Myślę, że to stare pytanie, ale najprostszym sposobem byłoby:
Spowoduje to pobranie bieżącego czasu, przekazanie go do ciągu na podstawie lokalizacji, a następnie można wywołać funkcję CurrentTime, aby wyświetlić czas. Byłby to dla mnie najbardziej skuteczny sposób na uzyskanie znacznika czasu na coś.
źródło