首页 > 解决方案 > javascript 将日期格式转换为清晰的格式

问题描述

我有这段代码,它让我以可辨认的格式获取日期,但它当前输出这种格式20200819,但我想将其转换2020-08-19为这可能吗?

这是我的代码

const dateConverter = (dateIn) => {
    var yyyy = dateIn.getFullYear();
    var mm = dateIn.getMonth() + 1; // getMonth() is zero-based
    var dd = dateIn.getDate();
    return String(10000 * yyyy + 100 * mm + dd); // Leading zeros for mm and dd
}
  
var today = new Date();
console.log(dateConverter(today));

标签: javascriptdatetime

解决方案


您不需要转换器功能。只需使用toLocaleDateString具有这种格式的语言环境,例如瑞典。

为了更确定格式,我添加了两个扩展:

console.log(new Date().toLocaleDateString("en-se"));

// To be explicit about the format of the numerical parts
console.log(new Date().toLocaleDateString("en-se", 
    { year: "numeric", month: "2-digit", day: "2-digit" })
);

// To be explicit about the delimiter also:
console.log(new Date().toLocaleDateString("en-se", 
    { year: "numeric", month: "2-digit", day: "2-digit" })
    .replace(/\D/g, "-")
);

选择:

如果您不想依赖本机toLocaleDateString函数,请在代码中替换以下行:

return String(10000 * yyyy + 100 * mm + dd)

和:

return String(10000 * yyyy + 100 * mm + dd).replace(/(....)(..)(..)/,"$1-$2-$3");

推荐阅读