Take a value 1-31 and convert it to ordinal date w/ JavaScript

前端 未结 4 1711
清酒与你
清酒与你 2021-01-04 08:13

Is there a JavaScript code snippet to take a value of 1-31 and convert it to 1st, 2nd, 3rd, etc?

Thanks!

4条回答
  •  离开以前
    2021-01-04 08:46

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

    Thanks @RobG bit modified version

    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;     
    }
    

    Tests

    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
    

提交回复
热议问题