gpt4 book ai didi

javascript - Moment.js 以本地格式显示小时

转载 作者:搜寻专家 更新时间:2023-11-01 05:28:14 25 4
gpt4 key购买 nike

我想这是一个非常简单的问题,但我目前无法在 moment's documentation 中找到它.我必须以本地格式显示一个小时,例如

  • 区域设置 en-gb:14
  • 区域设置 en-us:下午 2 点

我发现最接近的格式是 LT,但它也显示不需要的分钟...

这是我尝试过的:

moment().format('LT'); // 14:00 / 2:00 PM
// I need some kind of combination of these two:
moment().format('H'); // 14
moment().format('h A'); // 2 PM

是否有实现它的瞬间方法,或者我是否被迫使用如下所示的变通方法?

moment().format('LT').replace(/:[0-9]{2}/, '');

最佳答案

momentjs 2.18.1 中没有内置方法来获取您要查找的本地化输入。 localized formats包括时间在内的可用资源是:

Time                                               | LT    | 8:30 PM
Time with seconds | LTS | 8:30:25 PM
Month name, day of month, day of week, year, time | LLLL | Thursday, September 4 1986 8:30 PM
| llll | Thu, Sep 4 1986 8:30 PM

因此,您可能必须使用您在问题中展示的变通方法。以下脚本创建并显示一个 map ,其中包含每个 LT 字符串的出现次数。它使用 localeDatalongDateFormat 以获得 LT 的本地化格式。

let formatMap = new Map();

['af' , 'ar-dz', 'ar-kw', 'ar-ly', 'ar-ma', 'ar-sa', 'ar-tn', 'ar', 'az', 'be', 'bg', 'bn', 'bo', 'br', 'bs', 'ca', 'cs', 'cv', 'cy', 'da', 'de-at', 'de-ch', 'de', 'dv', 'el', 'en-au', 'en-ca', 'en-gb', 'en-ie', 'en-nz', 'eo', 'es-do', 'es', 'et', 'eu', 'fa', 'fi', 'fo', 'fr-ca', 'fr-ch', 'fr', 'fy', 'gd', 'gl', 'gom-latn', 'he', 'hi', 'hr', 'hu', 'hy-am', 'id', 'is', 'it', 'ja', 'jv', 'ka', 'kk', 'km', 'kn', 'ko', 'ky', 'lb', 'lo', 'lt', 'lv', 'me', 'mi', 'mk', 'ml', 'mr', 'ms-my', 'ms', 'my', 'nb', 'ne', 'nl-be', 'nl', 'nn', 'pa-in', 'pl', 'pt-br', 'pt', 'ro', 'ru', 'sd', 'se', 'si', 'sk', 'sl', 'sq', 'sr-cyrl', 'sr', 'ss', 'sv', 'sw', 'ta', 'te', 'tet', 'th', 'tl-ph', 'tlh', 'tr', 'tzl', 'tzm-latn', 'tzm', 'uk', 'ur', 'uz-latn', 'uz', 'vi', 'x-pseudo', 'yo', 'zh-cn', 'zh-hk', 'zh-tw'].forEach(localeName => {
var format = moment.localeData(localeName).longDateFormat('LT');

if( formatMap.has(format) ){
let val = formatMap.get(format);
formatMap.set(format, val+1);
} else {
formatMap.set(format, 1);
}

});

console.log(formatMap);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-with-locales.min.js"></script>

请注意,布列塔尼 (br) 语言环境使用 h[e]mm A 格式,并且有 7 种语言环境(包括:德语(瑞士)de-ch 、芬兰语 fi、印度尼西亚语 id 等)使用 HH.mm

这些情况未包含在您的解决方法中,也许您可​​以使用类似的方法:

moment().format('LT').replace(/(:|\.)[0-9]{2}/, '');

moment().format('LT').replace(/(:|\.|e)[0-9]{2}/, '');

为这些语言环境获取所需的输出。

关于javascript - Moment.js 以本地格式显示小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45580978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com