【问题标题】:Format Moment.js am/pm to include periods/dots格式化 Moment.js am/pm 以包含句点/点
【发布时间】:2016-07-05 13:14:43
【问题描述】:

Moment 的a 输入遇到了一个小的格式问题。

a/A 将返回 AM/am PM/pm,但有没有办法将其格式化以包含句点?

I.E. 上午下午这是对客户很重要的格式更改,我无法通过 moment 的文档找到解决方法

我试过了

moment.updateLocale('en', {
    meridiem : {
        am : 'a.m.',
        AM : 'A.M.',
        pm : 'p.m.',
        PM : 'P.M.'
    }
}); 

没有成功

有可能吗?

【问题讨论】:

    标签: javascript datetime momentjs


    【解决方案1】:

    您用于自定义子午线的方法适用于版本 the docs 了解更多信息:

    moment.updateLocale('en', {
      meridiem: function(hour, minute, isLowerCase) {
        if (hour < 12) {
          return 'a.m.';
        } else {
          return 'p.m.';
        }
      }
    });
    

    【讨论】:

      【解决方案2】:

      以下时刻 docs 你可以拥有以下内容:

      moment.updateLocale('en', {
        meridiem: function (hour, minute, isLowercase) {
          if( hour >= 12 )
            return isLowercase ? 'p.m.' : 'P.M.';
          else
            return isLowercase ? 'a.m.' : 'A.M.';
        }
      });
      console.log(moment().hour(1).format('HH:mm a'));
      console.log(moment().hour(15).format('HH:mm A'));
      &lt;script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"&gt;&lt;/script&gt;

      如文档中所述,从 1.6.0

      版本开始

      Locale#meridiem 应该是一个回调函数,根据小时、分钟和大小写返回正确的字符串。

      1.6.0之前的版本:

      Locale#meridiem 是 am/pm 的大写和小写版本的映射。

      【讨论】:

        【解决方案3】:

        基于@user4040648 的答案是如何在 es6 中实现它

            moment.updateLocale('en', {
              meridiem(hour, minute, isLowerCase) {
                  return hour < 12 ? 'a.m.' : 'p.m.';
              }
            });
        

        【讨论】:

          【解决方案4】:

          meridiem 地图在 1.5.x 及以下版本中,在 1.6.0 之后,meridiem 是一个返回值的函数(请参阅link)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-08-19
            • 2011-07-16
            • 1970-01-01
            • 1970-01-01
            • 2012-11-14
            • 2020-06-28
            • 2016-09-15
            • 1970-01-01
            相关资源
            最近更新 更多