Відповіді:
Вибачте, що увімкнули так пізно, але якщо ви хочете видалити частину часу, moment()а не форматувати , код:
.startOf('day')
Посилання: http://momentjs.com/docs/#/manipulating/start-of/
startOf('day'), що було тоді початком попереднього дня. Виправленоmoment(moment.utc('2013-10-29T00:00:00+00:00').startOf('day').format('LL')).startOf('day').toDate()
.startOf('day')не знімає часову частину сама по собі, вона просто встановлює час на 00:00:00. Отже, так, як коментує "collin", ви повинні бути обережними, зберігаючи дату. Краще альтернативне використання format('LL'), як відповіли в цій темі.
someMoment.clone().startOf('day')або moment(someMoment).startOf('day').
moment().utc().add(1,'d').startOf('day')відновить об’єкт до сьогодні.
format('LL')Залежно від того, що ви намагаєтеся зробити з цим, format('LL')можна зробити трюк. Це дає щось подібне:
Moment().format('LL'); // => April 29, 2016
Правильним способом було б вказати вхід відповідно до вашої вимоги, що дасть вам більше гнучкості.
Справжнє визначення включає наступне
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'
Ви можете використовувати будь-яке з них або змінити вхід, переданий у формат moment (). (). Наприклад, для своєї справи ви можете пройти moment.utc(dateTime).format('MMMM D, YYYY').
Ви також можете використовувати цей формат:
moment().format('ddd, ll'); // Wed, Jan 4, 2017
З новішими версіями moment.js ви також можете це зробити:
var dateTime = moment();
var dateValue = moment({
year: dateTime.year(),
month: dateTime.month(),
day: dateTime.date()
});
Дивіться: http://momentjs.com/docs/#/parsing/object/ .
date: dateTime.date()замість цього day: dateTime.date()?
dayпрацює до версії 2.8.4.
Гаразд, тому я знаю, що я запізнився на вечірку. Як і на 6 років пізніше, але це було щось, що мені потрібно було розібратися та чи форматувати його РРРР-ММ-DD.
moment().format(moment.HTML5_FMT.DATE); // 2019-11-08
Ви також можете передати параметр типу 2019-11-08T17:44:56.144,.
moment("2019-11-08T17:44:56.144").format(moment.HTML5_FMT.DATE); // 2019-11-08
Щоразу, коли я користуюся moment.jsбібліотекою, я визначаю потрібний формат таким чином:
moment(<your Date goes here>).format("DD-MMM-YYYY")
або
moment(<your Date goes here>).format("DD/MMM/YYYY")
... і т. д. Я сподіваюся, що ви зрозумієте,
Всередині функції форматування ви ставите потрібний формат. Наведений вище приклад позбудеться від усіх небажаних елементів із такої дати, як хвилини та секунди
L, LLі т.д.)
Для таких людей, як я, хочеться формату довгої дати ( LLLL), але без часу доби для цього є проблема GitHub: https://github.com/moment/moment/isissue/2505 . Наразі існує рішення:
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);
Ви можете використовувати цей конструктор
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})дав би мені 1 січня 1970 року, а не сьогодні.
moment({ h: 0 })робить те ж саме.
Omitted units default to 0 or the current date, month, and year.
Спробуйте це:
moment.format().split("T")[0]
1993-06-07T22:00:00.000Zрезультаті вийде 1993-06-07той день, коли1993-06-08