首页 > 解决方案 > javascript - 如果日期仅由年和月组成,则将日期显示为不带“01”填充的字符串

问题描述

我正在获取某种格式的日期 ('yyyymmdd' 或 'yyyymm'),并且需要在我当前的语言环境中将其显示为字符串。

对于此示例,区域设置为“en-GB”。

当我得到完整格式(yyyymmdd)时,我正在预设 dd/mm/yyyy,如果它是部分(yyyymm)我需要显示 mm/yyyy,但我得到 01/mm/yyyy,我该如何解决?

这是我的功能-

getDateStrFromEsploro(date: string){
    if (date.length === 8){
        const year = date.substring(0,4);
        const month = date.substring(4,6);
        const day = date.substring(6);
        return DateUtils.getDateAsString(new Date(parseInt(year), parseInt(month)-1, parseInt(day)));
    } else if (date.length === 6){
        const year = date.substring(0,4);
        const month = date.substring(4,6);
        return DateUtils.getDateAsString(new Date(parseInt(year), parseInt(month)-1));
    }
}

我的 DateUtils-

public static getDateAsString(date: Date) {
    return date.toLocaleDateString();
}

标签: javascriptangulartypescriptdate

解决方案


使用toLocaleDateString()选项参数

// without options
console.log(new Date(2019, 7).toLocaleDateString('en-GB'))

// with options
let date = new Date(2019, 7).toLocaleDateString('en-GB', {
  year: 'numeric',
  month: 'numeric',
});

console.log(date)


推荐阅读