gpt4 book ai didi

javascript - moment.js - 对法语月份的缩写形式使用严格性

转载 作者:行者123 更新时间:2023-12-01 05:35:22 25 4
gpt4 key购买 nike

我正在使用一个需要 moment.js 的 jquery 插件,因为我对它很陌生,所以它让我感到困惑。

根据 moment.js/doc 和我在网上找到的一些其他线程,我了解以下内容:

(来自 http://momentjs.com/docs/ )

Moment's parser is very forgiving, and this can lead to undesired behavior. As of version 2.3.0, you may specify a boolean for the last argument to make Moment use strict parsing. Strict parsing requires that the format and input match exactly.

moment('It is 2012-05-25', 'YYYY-MM-DD').isValid();        // true
moment('It is 2012-05-25', 'YYYY-MM-DD', true).isValid(); // false
moment('2012-05-25', 'YYYY-MM-DD', true).isValid(); // true

我们还可以同时使用语言和严格性:

moment('2012-10-14', 'YYYY-MM-DD', 'fr', true);

当我尝试使用法语语言环境时,moment('2012-10-14', 'YYYY-MM-DD', 'fr-ca', true) 没有返回 true。 (顺便说一句,如果您想知道,“fr-ca”是加拿大法语语言环境。)

    var date = '1 févr. 2017'; // it means 1 Feb. 2017
var format ='D MMM YYYY';

var locale = 'fr-ca';

moment.locale(locale);

// Problem starts here:
moment(date, format, locale).isValid(); // return true as expected.
moment(date, format, locale, true).isValid(); // return false, not expected.

我能想到的可能是“févr”。不是“MMM”的格式。如果不是,那会是什么?

以下是来自 moment-locale.js 源代码的法语缩写月份名称列表。

monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'

以下是我尝试过的完整版本,请帮助我找出我做错了什么。

https://jsfiddle.net/egcwzk2u/2/

提前致谢。

最佳答案

使用默认的灵活解析时,缩写中的句点 (.) 会被忽略,但在严格模式下,字符串必须与格式完全匹配,但事实并非如此。因为时期。

有两个选项:

  1. 您可以从输入字符串中删除句点。

    var date = '1 févr 2017';
    var format ='D MMM YYYY';
  2. 或者,您可以更改格式以允许使用句点:

    var date = '1 févr. 2017';
    var format ='D MMM. YYYY';

关于javascript - moment.js - 对法语月份的缩写形式使用严格性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34457941/

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