Javascript toLocalDateString 在 windows 和 mac 上输出不同的格式

Javascript toLocalDateString outputs different format on windows vs mac

我正在使用 Javascript 的 toLocalDateString 方法在 local system time 上获取用户的 date。 然而,函数的输出格式在 windows 和 mac 之间是不同的(在 上使用 chrome 浏览器):

上Windows

上Mac

正如您在 windows 上看到的那样,我们得到格式 m-dd-yyyy 而在 mac 上它是 dd-mm- yyyy。这导致我的代码出现问题,因为我需要在结果输出上使用 substr 并分别获取年份、日期和月份以通用格式显示它。

有没有办法强制它只以一种特定格式输出,或者有没有其他可靠的方法来获取系统的本地日期(我只需要日期而不是时间)

无法保证 toLocaleDateString() 的输出在特定系统的特定浏览器中的显示效果。所以如果你需要一个特定的格式,你必须自己创建它或者使用一些库。

如果您只需要当前日期的年、日和月,为什么不在 Date() 对象上使用相应的方法呢?

const today = new Date();
const year = today.getFullYear();
const month = today.getMonth() +1; //month count is 0-based
const day = today.getDate();

您必须按以下方式传递本地参数:

//美式英语使用月-日-年的顺序

console.log(date.toLocaleDateString('en-US'))

//英式英语使用日-月-年的顺序

console.log(date.toLocaleDateString('en-GB'))

检查参考 link - toLocaleDateString

 var date= new Date();
    var formatDate;
    if(navigator.appVersion.indexOf("Win") != -1){
      formatDate= date.toLocaleDateString('en-GB');
    }
    else{
     formatDate= date.toLocaleDateString();
    }
   console.log(formatDate);