Відповіді:
Вибачте, що увімкнули так пізно, але якщо ви хочете видалити частину часу, 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