豫ICP备2024044691号-1
powered by emlog
JS获取农历日期
Mins 2020-3-18 00:17 JavaScript

JS获取农历日期,代码如下:

const getChineseDate = (time) => {
    let date = time ? new Date(time) : new Date();
    dateString = date.toLocaleString('zh-CN-u-ca-chinese');
    dateString = dateString.replace(/(\d+)\s*?年/, ( x, y) => {
        let result = '';
        result = "甲乙丙丁戊己庚辛壬癸".charAt((y - 4) % 10); // 天干
        result += "子丑寅卯辰巳午未申酉戌亥".charAt((y - 4) % 12); // 地支
        return result;
    });
    dateString = dateString.split(' ')[0]; // 取年月日
    let g = dateString.substr(0,2);
    let m = dateString.substring(2, dateString.match('月').index) + '月';
    let d = dateString.match(/\d+/)[0];
    d = d < 11 ? '初' + d : d;
    let animals = ["猴","鸡","狗","猪","鼠","牛","虎","兔","龙","蛇","马","羊"];
    let index = date.toLocaleString('zh-CN-u-ca-chinese').substr(0, 4) % 12;
    let a = animals[index] + '年';
    return { 
        g, // 干支
        m, // 月
        d, // 日
        a  // 生肖
    };
}

用例:

getChineseDate('2024-03-18'); 

// 输出
{
    a: "龙年"
    d: "初9"
    g: "甲辰"
    m: "二月"
}

// 拼一下字符串
'甲辰龙年二月初9'

上面的初9,可以使用 JS实现数字转中文数字处理一下子