formatCalendarDate = function (dateTime) {
return moment.utc(dateTime).format('LLL');
};
它显示:“2013年2月28日09:24”
但是我想把最后的时间去掉。我该怎么做呢?
我用的是Moment.js。
formatCalendarDate = function (dateTime) {
return moment.utc(dateTime).format('LLL');
};
它显示:“2013年2月28日09:24”
但是我想把最后的时间去掉。我该怎么做呢?
我用的是Moment.js。
当前回答
对于像我这样想要长日期格式(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);
其他回答
问题是——你可能会遇到时区的问题。例如,如果你这样解析日期:'2022-02-26T00:36:21+01:00',它可能会变成'25/02/2022'。如果你的日期是ISO格式的,你可以从字符串中截断时间部分,就像这样:
moment('2022-02-26T00:36:21+01:00'.split('T')[0]).utc().format('DD/MM/YYYY')
这个解决方案相当生硬,所以要小心字符串格式。
看这些例子。
格式的日期
moment().format('MMMM Do YYYY, h:mm:ss a'); // December 7th 2020, 9:58:18 am
moment().format('dddd'); // Monday
moment().format("MMM Do YY"); // Dec 7th 20
moment().format('YYYY [escaped] YYYY'); // 2020 escaped 2020
moment().format(); // 2020-12-07T09:58:18+05:30
相对时间
moment("20111031", "YYYYMMDD").fromNow(); // 9 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 8 years ago
moment().startOf('day').fromNow(); // 10 hours ago
moment().endOf('day').fromNow(); // in 14 hours
moment().startOf('hour').fromNow(); // an hour ago
日历时间
moment().subtract(10, 'days').calendar(); // 11/27/2020
moment().subtract(6, 'days').calendar(); // Last Tuesday at 9:58 AM
moment().subtract(3, 'days').calendar(); // Last Friday at 9:58 AM
moment().subtract(1, 'days').calendar(); // Yesterday at 9:58 AM
moment().calendar(); // Today at 9:58 AM
moment().add(1, 'days').calendar(); // Tomorrow at 9:58 AM
moment().add(3, 'days').calendar(); // Thursday at 9:58 AM
moment().add(10, 'days').calendar(); // 12/17/2020
多语言环境支持
moment.locale(); // en
moment().format('LT'); // 9:58 AM
moment().format('LTS'); // 9:58:18 AM
moment().format('L'); // 12/07/2020
moment().format('l'); // 12/7/2020
moment().format('LL'); // December 7, 2020
moment().format('ll'); // Dec 7, 2020
moment().format('LLL'); // December 7, 2020 9:58 AM
moment().format('lll'); // Dec 7, 2020 9:58 AM
moment().format('LLLL'); // Monday, December 7, 2020 9:58 AM
moment().format('llll'); // Mon, Dec 7, 2020 9:58 AM
formatCalendarDate = function (dateTime) {
return moment.utc(dateTime).format('LL')
}
正确的方法是根据您的需求指定输入,这将为您提供更大的灵活性。
目前的定义包括以下内容
LTS: 'h:mm:ss A', LT: 'h:mm A', L: ' mm / dd / yyyy ', 今天李华学了两个常用语:mm d, yyyy。 ll: ' mm D, YYYY h:mm A', ll: 'dddd, mm D, YYYY h:mm A'
您可以使用其中任何一个,也可以更改传递给moment().format()的输入。 例如,对于您的情况,您可以传递moment.utc(dateTime)。format('MMMM D, YYYY')。
每当我使用moment.js库时,我以这种方式指定所需的格式:
moment(<your Date goes here>).format("DD-MMM-YYYY")
or
moment(<your Date goes here>).format("DD/MMM/YYYY")
... 我希望你能明白
在format函数中,放入所需的格式。上面的例子将去掉日期中所有不需要的元素,如分钟和秒