简体   繁体   English

以一致的格式获取日期

[英]Get Date in Consistent Format

I am having a function which return the date based on some condition (last 30 day).我有一个 function 根据某些条件(过去 30 天)返回日期。

 const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); const startTime = start.toLocaleString().split(",")[0]; console.log(startTime)

In Mac OS,I am getting the output in dd/mm/yyyy format (which is the desired format).在 Mac OS 中,我得到了 dd/mm/yyyy 格式的 output(这是所需的格式)。

But in Windows, I am getting the output in mm/dd/yyyy.但是在 Windows 中,我得到了 mm/dd/yyyy 格式的 output。 How can I make it consistent irespective of platform.无论平台如何,如何使其保持一致。 Desired format is dd/mm/yyy所需格式为 dd/mm/yyy

Use toLocaleDateString with 'en-GB'toLocaleDateString与“en-GB”一起使用

 const start = new Date(); start.setDate(start.getDate() - 30) const startTime = start.toLocaleDateString('en-GB'); console.log(startTime)

Use toLocaleDateString with locale (and optional options)toLocaleDateString 与语言环境(和可选选项)一起使用

The en-GB locale seems what you want here en-GB 语言环境似乎是您想要的

 const options = {year: 'numeric', month: 'numeric', day: 'numeric' }; // default options const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); console.log(start.toLocaleDateString('en-GB', options));

function SetShortDateTime(d) {
const monthList = [
    "01",
    "02",
    "03",
    "04",
    "05",
    "06",
    "07",
    "08",
    "09",
    "10",
    "11",
    "12"
];


const yr = d.getFullYear();
const mnt = monthList[d.getMonth()];
const day = d.getDate() < 9 ? "0" + d.getDate() : d.getDate();

return [day, mnt, yr].join("/") ;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM