moment.js-在法语中使用月的缩写形式
moment.js - Use strictness on short form of month in French
我正在使用一个需要moment.js的jquery插件,因为我对它很陌生,所以我很困惑。
基于我在网上找到的moment.js/doc和其他一些线程,我理解以下内容:
(发件人http://momentjs.com/docs/)
Moment的解析器非常宽容,这可能会导致不期望的结果行为从2.3.0版本开始,您可以为最后一个使Moment使用严格解析的参数。严格的分析需要格式和输入完全匹配。
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);
当我尝试使用法语Locale时,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源代码中的法语缩写Month名称列表。
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'
以下是我尝试的完整版本,请帮助我确定我做错了什么。
https://jsfiddle.net/egcwzk2u/2/
提前谢谢。
使用默认的灵活解析时,缩写中的句点(.
)会被忽略,但在严格模式下,字符串必须与格式完全匹配,而这并不是因为句点。
有两种选择:
-
您可以从输入字符串中删除句点。
var date = '1 févr 2017'; var format ='D MMM YYYY';
-
或者,您可以更改格式以允许周期:
var date = '1 févr. 2017'; var format ='D MMM. YYYY';
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 时刻时区.js允许我传递时区缩写并获取转换后的日期/时间
- 时刻JS更新时区缩写
- moment.js-在法语中使用月的缩写形式
- 使用 JS 获取名称缩写
- 使用JS/JQuery将大文本转换为缩写或短字符串
- 如何在 js 中删除时区缩写
- D3.js 中 X 轴的缩写月份格式