var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)
Zwraca to 3.
- Jak sprawić, by zwrócił „03”?
- Dlaczego
.length
wraca undefinded?
Próbowałem tego, ale nie zadziałało:
Jeśli strlen == 1
wtedynum = ('0' + num);
javascript
Mark Fondy
źródło
źródło
.getMinutes()
jest liczbą całkowitą, nie można uzyskać dostępu.length
z liczby całkowitej. Aby to osiągnąć (niezalecane w przypadku dat) jest przetworzenie liczby na łańcuch, a następnie sprawdzenie długości. Np .:date.getMinutes().toString().length
Odpowiedzi:
źródło
<10?'0':''
oznacza?Ups, te odpowiedzi nie są świetne, nawet najwyższy post został podniesiony. Proszę bardzo, między przeglądarkami i czystszą konwersję int / string. Ponadto radzę nie używać nazwy zmiennej `` data '' z kodem, na przykład w
date = Date(...)
przypadku, gdy w dużym stopniu polegasz na rozróżnianiu wielkości liter w języku (działa, ale ryzykowne, gdy pracujesz z kodem serwera / przeglądarki w różnych językach z różnymi regułami) . Zakładając więc datę javascript w zmiennejcurrent_date
:Technika polega na zastosowaniu 2 skrajnych prawych znaków
(slice(-2))
„0” poprzedzonych wartością ciągugetMinutes()
. Więc:i
źródło
Innym krótkim sposobem jest wypełnienie minut zerem wiodącym za pomocą:
Znaczenie: Spraw, aby łańcuch był długi na dwa znaki, jeśli brakuje znaku, ustaw go
0
w tej pozycji.Zobacz dokumentację na str.padStart (targetLength, padString)
źródło
Elegancka funkcja ES6 do formatowania daty w
hh:mm:ss
:źródło
Jeśli mogę, chciałbym przedstawić bardziej zgrabne rozwiązanie problemu. Przyjęta odpowiedź jest bardzo dobra. Ale zrobiłbym to w ten sposób.
Teraz, jeśli chcesz tego użyć.
źródło
Sugeruję:
jest to jedno wywołanie funkcji mniej. Zawsze dobrze jest pomyśleć o wydajności. Jest też krótki;
źródło
powinieneś sprawdzić, czy jest mniejszy niż 10 ... nie szukając jego długości, ponieważ jest to liczba, a nie ciąg
źródło
Inna opcja:
źródło
substr
. w3schools.com/jsref/jsref_substr.aspKorzystając z ECMAScript Internationalization API, więcej informacji :
źródło
.length
jest niezdefiniowana, ponieważgetMinutes
zwraca liczbę, a nie ciąg. liczby nie mająlength
własności. Mógłbyśvar m = "" + date.getMinutes();
aby utworzyć ciąg, a następnie sprawdź długość (chcesz sprawdzić
length === 1
, a nie 0).źródło
Liczby nie mają długości, ale możesz łatwo przekonwertować liczbę na ciąg, sprawdzić długość, a następnie w razie potrzeby wstawić 0 na początku:
źródło
Nie widzę tutaj żadnych odpowiedzi ES6, więc dodam jedną z formatowaniem StandardJS
źródło
Zakładam, że potrzebujesz wartości jako ciągu. Możesz użyć poniższego kodu. Zawsze zwróci dwie cyfry minut jako ciąg.
Mam nadzieję że to pomoże.
źródło
Zwykle używam tego fragmentu kodu:
Jest dość podobny do zaakceptowanej odpowiedzi @ogur, ale nie łączy pustego ciągu w przypadku, gdy 0 nie jest potrzebne. Nie wiem, czy tak jest lepiej. Po prostu inny sposób, aby to zrobić!
źródło
możesz użyć moment js:
przykład:
moment('2019-10-29T21:08').format('mm') ==> 08
mam nadzieję, że to komuś pomoże
źródło
nowość w JS, więc było to bardzo pomocne, najbardziej ppl patrząc na ten problem nowy, więc w ten sposób pokazałem go w div o nazwie "class =" min "
mam nadzieję, że to komuś pomoże
źródło
co powiesz na to? mi to pasuje! :)
źródło
Inna opcja, aby uzyskać dwucyfrowe minuty lub godziny.
źródło
W przypadku minut dwucyfrowych użyj:
new Date().toLocaleFormat("%M")
źródło
Jeśli używasz AngularJS w swoim projekcie, po prostu wstrzyknij $ filter i użyj go tak jak tutaj:
Możesz również sformatować dane wyjściowe w szablonie, więcej o filtrach tutaj .
źródło