在Moment.js中有更好的方法来获取isPM吗?

时间:2018-05-16 23:17:03

标签: javascript momentjs

我的时刻。版本= 2.10.6。根据我在该版本中的理解,这是我确定AM / PM所需的最少量代码:

// AM
var m = moment("2018-05-16 11:59:59 GMT-0600");
m.localeData().isPM(m.format('A')) // false

// PM
var m = moment("2018-05-16 12:00:00 GMT-0600");
m.localeData().isPM(m.format('A')) // true

这是对的吗?如果是这样,对我来说似乎有点过于复杂。我想要做类似的事情:

moment("2018-05-16 11:59:59 GMT-0600").local().isPM()

我认为期望local能够在内部访问localeData并且localeData知道如何在内部为AM | PM格式化字符串是合理的,因此local的返回值可以采用isPM方法。

1 个答案:

答案 0 :(得分:1)

您可以编写自己的函数来检查PM:

function isPM(momentObj) {
    if (momentObj.format('A') === 'PM')
        return true;
    return false;
}

isPM(moment('2018-05-16T18:00:00')); //true
isPM(moment('2018-05-16T10:00:00')); //false

您还可以扩展moment.prototype并实现isPM

moment.prototype.isPM = function() {
    if (this.format('A') === 'PM')
        return true;
    return false;
}

moment('2018-05-16T18:00:00').isPM(); //true
moment('2018-05-16T10:00:00').isPM(); //false