首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >月份“五月”不适用于Moment.JS (包括Fiddle)

月份“五月”不适用于Moment.JS (包括Fiddle)
EN

Stack Overflow用户
提问于 2014-04-23 11:21:39
回答 2查看 786关注 0票数 0

为什么当我尝试“五月”这个月时,我会得到“无效日期”?(这是荷兰语,所以才有“梅”)

当我尝试月份“六月”(荷兰语:"juni")时,我没有得到“无效日期”。

我不明白..。检查小提琴:小提琴

脚本:(纯粹是为了测试目的,以显示月份“可能”不起作用)

代码语言:javascript
运行
复制
$(document).ready(function () {
    var newvartitle = "5 mei 2014";
    var goodformatdata = moment(newvartitle).format('DD/MM/YYYY');
    var newvartitle2 = "5 juni 2014";
    var goodformatdata2 = moment(newvartitle2).format('DD/MM/YYYY');
    $('.tester').append(goodformatdata);
    $('.tester').append(goodformatdata2);
});

这个问题解决了,,解决方案:http://jsfiddle.net/kULx3/2/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-23 11:55:33

问题是您使用的语言是输出语言。例如,如果您尝试这样做

代码语言:javascript
运行
复制
alert(moment("5 5 2014").lang("nl").format("DD/MMMM/YYYY"));

输出将是

05/mei/2014

为了接受荷兰语的输入,您必须实现它。例如,创建一个将字符串作为参数并将荷兰月份更改为数字的方法,因此当您调用

代码语言:javascript
运行
复制
moment(toMoment("5 mei 2014")).lang("nl").format("DD/MMMM/YYYY")

toMoment("5 mei 2014")的返回值为5 5 2014

其中一个例子就是

代码语言:javascript
运行
复制
function toMoment(str){

    var result = null;
    var splitted = str.split(" ");
    var month = splitted[1];

    switch(month){
        case "mei": result = "5"; break;
    }

    return splitted[0] + " " + result + " " + splitted[2];
}
票数 4
EN

Stack Overflow用户

发布于 2014-04-23 11:24:12

默认情况下,Moment.js设置为英语。可以通过将所需的语言传递到Moment.js的.lang()函数来更改这一点:

代码语言:javascript
运行
复制
moment.lang('en');

在英语中,"juni“中的"i”被完全忽略了。Moment.js只查看月份名称的前三个字母。"Juni“被视为"jun”(英文中的“Jun”),而英文中没有以"mei“开头的三个字母的月份。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23242771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档