首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示正确的日期后缀

显示正确的日期后缀
EN

Stack Overflow用户
提问于 2014-12-08 12:24:59
回答 1查看 33关注 0票数 0

我正在尝试修复this widget (download),因为它说日期是每个月的01TH、02TH和03TH,而我终生找不出它不工作的原因。我没有任何使用JS的经验,但是我对C#很在行,所以它的语法并不难理解。

我意识到这句话才是罪魁祸首:

代码语言:javascript
运行
复制
document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "TH";

我试着用下面的代码替换它(我知道它在11号、12号和13号是不正确的),但仍然失败:

代码语言:javascript
运行
复制
if (dateFC % 10 == 1)
{
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "ST";
}
else if (dateFC % 10 == 2)
{
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "ND";
}
else if (dateFC % 10 == 3)
{
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "RD";
}
else
{
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "TH";
}

据我所知,语法是正确的,所以我只能假设我没有正确地应用模运算符(在C#中,我猜测它将数字存储为字符串,这就是它可能失败的原因,但我不知道这在这里是否适用)。如果有人能为我指明正确的方向,我将不胜感激!提前谢谢。

EN

Stack Overflow用户

发布于 2014-12-08 12:51:16

//可以使用switch语句的地方不多了,但这就是其中之一。

代码语言:javascript
运行
复制
function nth(n){
    if(n%1) return n;
    var n1= n%100;
    if(n1>3 && n1<21) return n+'th';
    switch(n1%10){
        case 1: return n+'st';
        case 2: return n+'nd';
        case 3: return n+'rd';
        default: return n+'th';
    }
}
var A= [];
for(var i= 1; i<32; i++)A.push(nth(i));

A.join(', ');

//返回值:

代码语言:javascript
运行
复制
1st, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th, 10th, 11th, 12th, 13th, 
14th, 15th, 16th, 17th, 18th, 19th, 20th, 21st, 22nd, 23rd, 24th, 
25th, 26th, 27th, 28th, 29th, 30th, 31st
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27351409

复制
相关文章

相似问题

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