取值1-31并将其转换为带有JavaScript的序数日期

Reg*_*Reg 12 javascript frontend date web

是否有一个JavaScript代码片段取值为1-31并将其转换为第1,第2,第3等?

谢谢!

Pra*_*aya 22

function getOrdinal(n) {
    var s=["th","st","nd","rd"],
    v=n%100;
    return n+(s[(v-20)%10]||s[v]||s[0]);
}
Run Code Online (Sandbox Code Playgroud)

谢谢@RobG位修改版

function getOrdinal(n) {
    if((parseFloat(n) == parseInt(n)) && !isNaN(n)){
        var s=["th","st","nd","rd"],
        v=n%100;
        return n+(s[(v-20)%10]||s[v]||s[0]);
    }
    return n;     
}
Run Code Online (Sandbox Code Playgroud)

测试

getOrdinal("test");   // test
getOrdinal(1.5);      // 1.5
getOrdinal(1);        // 1st
getOrdinal(2);        // 2nd
getOrdinal(3);        // 3rd
getOrdinal(4);        // 4th
getOrdinal(true);     // true
getOrdinal(Infinity); // Infinity
getOrdinal(NaN);      // NaN
getOrdinal(void 0);   // undefined
Run Code Online (Sandbox Code Playgroud)

  • 哇,我错误地偶然发现了Code Golf吗?:) (2认同)