首页 > 解决方案 > toLocaleDateString 给出不同的结果

问题描述

我正在使用以下功能。它为少数用户提供输出为1988 年 7 月 7 日。它适用于所有用户并提供正确的结果,如 1988 年 7 月 7 日。任何人都知道如何解决这个问题。我希望所有用户的结果都是 07-Jul-1988 格式。当我特别提到格式“en-GB”时,为什么它会变成不同的格式。

function(data) {
    var date = new Date(data);  
   
    return date.toLocaleDateString('en-GB', {
        day: 'numeric', month: 'short', year: 'numeric'
      }).replace(/ /g, '-')
}

我在此链接上发现 -​​ https://github.com/nodejs/node/issues/33761它的行为不同。在我的情况下也可能是同样的问题?

更新:我可以使用下面的方法来获取所需格式的日期,或者 moment.js 会更好吗?

    function(data){
    var months = ["JAN", "FEB", "MAR","APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"];
   var current_datetime = new Date(data);
    var formatted_date = current_datetime.getDate() + "-" + months[current_datetime.getMonth()] + "-" + current_datetime.getFullYear()
   console.log(formatted_date)
   }

标签: javascriptdatedate-formatting

解决方案


推荐阅读