我使用的是时刻,在大多数情况下,我只需要获取日期作为字符串,将日期传递给数据库的格式,或者只是一个比较(片刻,请帮我比较一下,但仍然可以)。 / p>
每次我都需要这种特殊格式时,我必须写.format('YYYY-MM-DD')
,并且我想知道是否存在诸如C
之类的预设或完整I
对于iso。我在文档中找不到任何内容,只有L
答案 0 :(得分:2)
如果您没有在文档中看到它(并且我也没有),这表明不存在,Moment中没有当前的预设。
您总是可以添加自己的:
Object.defineProperty(moment.fn, "myYMD", { // or moment.prototype, they refer to
// the same object according to the docs
value: function() {
return this.format("YYYY-MM-DD");
},
configurable: true,
writable: true
});
(使用Object.defineProperty
是因为我从未将可枚举的属性添加到原型中。)
请注意方法名称上的前缀,以免与以后的Moment扩展名冲突。
示例:
Object.defineProperty(moment.fn, "myYMD", {
value: function() {
return this.format("YYYY-MM-DD");
},
configurable: true,
writable: true
});
// using it
console.log(moment().myYMD());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
或者只是使用实用程序方法将Moment实例传递到其中。
答案 1 :(得分:1)
作为版本 2.20.0 ,您可以使用Special Formats(即使在文档的分析部分中提到了它们),例如,您可以使用moment.HTML5_FMT.DATE
获取YYYY-MM-DD
格式的输出:
console.log(moment().format(moment.HTML5_FMT.DATE));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
如果需要,还可以自定义default format,以使format()
(不带参数)以您喜欢的格式显示结果:
console.log(moment().format());
moment.defaultFormat = 'YYYY-MM-DD';
console.log(moment().format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
或者,如果您愿意,可以extend使用moment.fn
并构建一个接受令牌的函数(例如'C'
和'I'
):
moment.fn.myFormat = function(token){
if( token == 'C' ){
return this.format('YYYY-MM-DD');
} else if( token == 'I' ){
return this.toISOString();
} else {
return this.format();
}
}
console.log(moment().myFormat());
console.log(moment().myFormat('C'));
console.log(moment().myFormat('I'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
Moment
原型通过moment.fn
公开。如果要添加自己的功能,则可以在其中放置它们。
答案 2 :(得分:0)
根据Long Date Formats部分的定义,您可以定义以下格式:
moment.updateLocale('en', {
longDateFormat : {
LT: "h:mm A",
LTS: "h:mm:ss A",
L: "MM/DD/YYYY",
l: "M/D/YYYY",
LL: "MMMM Do YYYY",
ll: "MMM D YYYY",
LLL: "MMMM Do YYYY LT",
lll: "MMM D YYYY LT",
LLLL: "dddd, MMMM Do YYYY LT",
llll: "ddd, MMM D YYYY LT"
}
});
然后使用它,例如:
moment().format("L");
就我所知,这是预设您自己的格式的最佳方法。