如何从 Moment.js 中删除时间?

formatCalendarDate = function (dateTime) {
return moment.utc(dateTime).format('LLL');
};

显示: “2013年2月28日09:24”

但是我想去掉最后的时间,我该怎么做呢?

我用的是 等一下

340045 次浏览
formatCalendarDate = function (dateTime) {
return moment.utc(dateTime).format('LL')
}

抱歉这么晚才插话,但如果你想删除 moment()的时间部分,而不是格式化它,那么代码是:

.startOf('day')

裁判:http://momentjs.com/docs/#/manipulating/start-of/

在更新版本的moment.js中,你也可以这样做:

var dateTime = moment();


var dateValue = moment({
year: dateTime.year(),
month: dateTime.month(),
day: dateTime.date()
});

看到:http://momentjs.com/docs/#/parsing/object/

使用format('LL')

根据你想用它做什么,format('LL')可以做到这一点。它会产生这样的东西:

Moment().format('LL'); // => April 29, 2016

你也可以使用这种格式:

moment().format('ddd, ll'); // Wed, Jan 4, 2017

正确的方法是根据您的需求指定输入,这将为您提供更大的灵活性。

目前的定义包括以下内容

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' < /代码> < / p > 您可以使用其中任何一个或更改传递到moment().format()的输入。 例如,对于你的情况,你可以传递moment.utc(dateTime).format('MMMM D, YYYY').

试试这个:

moment.format().split("T")[0]

每当我使用moment.js库时,我都这样指定所需的格式:

moment(<your Date goes here>).format("DD-MMM-YYYY")

moment(<your Date goes here>).format("DD/MMM/YYYY")

... 我希望你能明白

在format函数中,放入所需的格式。上面的例子将去掉日期中所有不需要的元素,如分钟和秒

对于像我这样想要长日期格式(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>

好吧,我知道我来晚了。大概晚了6年,但这是我需要弄清楚的东西,并将其格式化为YYYY-MM-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

https://momentjs.com/docs/#/parsing/special-formats/

看这些例子。

格式的日期

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

我迟到了,但这对我来说非常有效:

时刻().format(“YYYY-MM-DD”)

moment(date).format(DateFormat)

这里的DateFormat应该是DateFormat = 'YYYY-MM-DD'

问题是——你可能会遇到时区的问题。例如,如果你像这样解析日期:'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')

这个解决方案相当生硬,所以要小心字符串格式。

尝试new Date().toDateString()

结果-“2022年6月17日星期五”;