Ответы:
Извините, что так поздно, но если вы хотите удалить часть времени, moment()
а не отформатировать ее, то код:
.startOf('day')
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 (). Format (). Например, для вашего случая вы можете пройти 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 лет позже, но мне нужно было это выяснить и отформатировать в формате ГГГГ-ММ-ДД.
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/issues/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