Odpowiedzi:
Przepraszam, że wskoczyłem tak późno, ale jeśli chcesz usunąć część czasu moment()
zamiast formatować , kod jest następujący:
.startOf('day')
startOf('day')
, co było początkiem poprzedniego dnia. Naprawiono za pomocąmoment(moment.utc('2013-10-29T00:00:00+00:00').startOf('day').format('LL')).startOf('day').toDate()
.startOf('day')
nie usuwa części czasu jako takiej, po prostu ustawia czas na 00:00:00. Tak więc, jak skomentował „collin”, musisz zachować ostrożność podczas zapisywania daty. Jest lepsza alternatywa format('LL')
, jak już odpowiedziano w tym wątku.
someMoment.clone().startOf('day')
lub moment(someMoment).startOf('day')
.
moment().utc().add(1,'d').startOf('day')
zresetuje obiekt do dzisiaj.
format('LL')
W zależności od tego, co próbujesz z tym zrobić, format('LL')
może załatwić sprawę . Wytwarza coś takiego:
Moment().format('LL'); // => April 29, 2016
Prawidłowym sposobem byłoby określenie danych wejściowych zgodnie z wymaganiami, co zapewni większą elastyczność.
Niniejsza definicja obejmuje następujące elementy
LTS : 'h:mm:ss A',
LT : 'h:mm A',
L : 'MM/DD/YYYY',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY h:mm A',
LLLL : 'dddd, MMMM D, YYYY h:mm A'
Możesz użyć dowolnego z nich lub zmienić dane wejściowe przekazane na moment (). Format (). Na przykład w sprawie możesz przekazać moment.utc(dateTime).format('MMMM D, YYYY')
.
Możesz także użyć tego formatu:
moment().format('ddd, ll'); // Wed, Jan 4, 2017
W nowszych wersjach mom.js możesz również to zrobić:
var dateTime = moment();
var dateValue = moment({
year: dateTime.year(),
month: dateTime.month(),
day: dateTime.date()
});
date: dateTime.date()
zamiast day: dateTime.date()
?
day
działa przed wersją 2.8.4.
Okej, więc wiem, że jestem spóźniony na przyjęcie. Jak 6 lat spóźnienia, ale to było coś, co musiałem wymyślić i sformatować RRRR-MM-DD.
moment().format(moment.HTML5_FMT.DATE); // 2019-11-08
Możesz także przekazać parametr taki jak 2019-11-08T17:44:56.144
.
moment("2019-11-08T17:44:56.144").format(moment.HTML5_FMT.DATE); // 2019-11-08
Ilekroć korzystam z moment.js
biblioteki, określam pożądany format w następujący sposób:
moment(<your Date goes here>).format("DD-MMM-YYYY")
lub
moment(<your Date goes here>).format("DD/MMM/YYYY")
... itd. Mam nadzieję, że masz pomysł
Wewnątrz funkcji formatowania umieścisz żądany format. Powyższy przykład usunie wszystkie niechciane elementy z daty, takie jak minuty i sekundy
L
, LL
etc.)
Dla osób takich jak ja chce formatu długiej daty ( LLLL
), ale bez pory dnia istnieje problem GitHub: https://github.com/moment/moment/issues/2505 . Na razie istnieje obejście:
var localeData = moment.localeData( moment.locale() ),
llll = localeData.longDateFormat( 'llll' ),
lll = localeData.longDateFormat( 'lll' ),
ll = localeData.longDateFormat( 'll' ),
longDateFormat = llll.replace( lll.replace( ll, '' ), '' );
var formattedDate = myMoment.format(longDateFormat);
Możesz użyć tego konstruktora
moment({h:0, m:0, s:0, ms:0})
http://momentjs.com/docs/#/parsing/object/
console.log( moment().format('YYYY-MM-DD HH:mm:ss') )
console.log( moment({h:0, m:0, s:0, ms:0}).format('YYYY-MM-DD HH:mm:ss') )
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
moment({h:0, m:0, s:0, ms:0})
dałoby mi to 1 stycznia 1970 r., A nie dziś.
moment({ h: 0 })
to samo.
Omitted units default to 0 or the current date, month, and year.
Spróbuj tego:
moment.format().split("T")[0]
1993-06-07T22:00:00.000Z
spowoduje 1993-06-07
to, że jest to początek dnia1993-06-08