【问题标题】:convert dd/mm/yyyy to mm/dd/yyyy in javascript在javascript中将dd/mm/yyyy转换为mm/dd/yyyy
【发布时间】:2011-03-25 13:47:06
【问题描述】:

我想在 javascript 中将 dd/mm/yyyy 转换为 mm/dd/yyyy。

【问题讨论】:

  • 它是您要转换的字符串吗?提供一些代码如何初始化第一种格式。
  • 你使用的是 Date() 方法吗?
  • 如果这是用户输入,你怎么知道它是一种形式而不是另一种形式?使用某种 JavaScript 日期选择器可能会更好。
  • 您的标题和问题冲突。是 dd/mm/yyyy 还是 dd/ mon /yyyy?
  • 您的标题似乎表明您想将 mon 转换为 mm 以及例如 MAR 转换为 03

标签: javascript


【解决方案1】:
var initial = 'dd/mm/yyyy'.split(/\//);
console.log( [ initial[1], initial[0], initial[2] ].join('/')); //=> 'mm/dd/yyyy'

编辑 2021/05/14:使用 ES20xx 的 sn-p

const pad = v => v.padStart(2, `0`);
const initialDate= new Date().toLocaleDateString("nl-NL")
  .split(/[-/]/).map(pad).join("/");
const toFragments = dateString => initialDate
  .split(/[-/]/).map(pad);
const dateTo_mmddyyyy = ([date, month, year], divider = "/") => 
  `${month}${divider}${date}${divider}${year}`;
const [date, month, year] = toFragments(initialDate);
console.log( `initial (dd/mm/yyyy): ${initialDate}`);
console.log( `reformatted to mm/dd/yyyy (array join): ${
  [month, date, year].join('/') }` );
console.log( `reformatted to mm-dd-yyyy (function): ${
  dateTo_mmddyyyy(toFragments(initialDate), "-") }` );

【讨论】:

  • 伟大的解决方案伙伴!
【解决方案2】:
var date = "24/09/1977";
var datearray = date.split("/");

var newdate = datearray[1] + '/' + datearray[0] + '/' + datearray[2];

newdate 将包含 09/24/1977。 split 方法会在找到“/”的任何地方分割字符串,因此如果日期字符串是“24/9/1977”,它仍然可以工作并返回 9/24/1977。

【讨论】:

  • 最快最简单的方法
【解决方案3】:

这是一个 moment.js 版本。该库可以在http://momentjs.com/找到。

//specify the date string and the format it's initially in
var mydate = moment('15/11/2000', 'DD/MM/YYYY'); 

//format that date into a different format
moment(mydate).format("MM/DD/YYYY");

//outputs 11/15/2000

【讨论】:

    【解决方案4】:

    dd/mon/yyyy 转换为mm/dd/yyyy

    months = {'jan': '01', 'feb': '02', 'mar': '03', 'apr': '04', 'may': '05',
    'jun': '06', 'jul': '07', 'aug': '08', 'sep': '09', 'oct': '10', 'nov': '11',
    'dec': '12'};
    
    split = 'dd/mon/yyyy'.split('/');
    [months[split[1]], split[0], split[2]].join('/');
    

    dd/mm/yyyy 转换为mm/dd/yyyy

    split = 'dd/mm/yyyy'.split('/');
    [split[1], split[0], split[2]].join('/');
    

    【讨论】:

      【解决方案5】:
      var months = new Array("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec");
      var ddSplit = '12/23/2011'.split('/');  //date is mm/dd/yyyy format
      alert(ddSplit[1]+'-'+months[ddSplit[0]-1] + '-' + ddSplit[2])
      

      【讨论】:

        【解决方案6】:

        试试这个例子,其中一个正则表达式用于查找和切换字符串的各个部分:

        var d1 = "03/25/2011";
        var d2 = d1.replace(/^(\d{1,2}\/)(\d{1,2}\/)(\d{4})$/,"$2$1$3");
        alert("d1:"+d1 +"\n d2:"+d2 )
        
        /* 
        // OUTPUT
        
          d1: 03/25/2011
          d2: 25/03/2011
        
        */
        

        编辑:

        我注意到没有其他答案是使用正则表达式,我真的很想知道为什么... :)

        【讨论】:

        • 有点破解,但是在这么短的时间内非常好的快速解决方案。赞赏!
        【解决方案7】:

        您可以使用以下函数指定,1个日期和2个日期分隔符(可选) 日期将以所需的格式返回。

        const setFormatDDMMYYYYtoMMDDYYYY = (date, separator = '/') => {
          const [day, month, year] = date.split('/');
          return month + separator + day + separator + year;
        };
        

        【讨论】:

        • 解释会很有帮助,这样人们就可以从您的答案中学习,而不仅仅是从网络上复制和粘贴一些代码。见How to Answer
        【解决方案8】:

        试试这个,它对我有用:

        var fechaLatinFormat= "05-10-2016";//octuber 5, 2016 - octubre 5 del 2016
        var datePieces = fechaLatinFormat.split("-"); 
        var preFinalDate = new Date(parseInt(datePieces[2]), parseInt(datePieces[1]) - 1, parseInt(datePieces[0]));    
        console.log(preFinalDate.format("mm-dd-yyyy")); 
        

        或者:

        var fechaLatinFormat= "05-10-2016";//octuber 5, 2016 - octubre 5 del 2016
        var datePieces = fechaLatinFormat.split("-"); 
        var preFinalDate = [datePieces[1] , datePieces[0] , datePieces[2]];
        console.log(preFinalDate.join("-"));
        

        【讨论】:

          【解决方案9】:
          var date = "31/03/2017 14:28";
          var regex = /(\d+)/g;
          var d = date.match(regex);
          var out = d[2] + "-" + d[1] + "-" + d[0] + " " + d[3] + ":" + d[4];
          var dag = new Date(out);
          console.log(dag);
          

          这只是使用此正则表达式的数字的解决方案

          【讨论】:

            【解决方案10】:
              var currentDate = new Date()
              var day = currentDate.getDate()
              var month = currentDate.getMonth()
              var year = currentDate.getFullYear()
              document.write("<b>" + month + "/" + day + "/" + year + "</b>")
            

            【讨论】:

              【解决方案11】:
              date = "01/Feb/2010"
              monthes = {"Jan": "01", "Feb": "02", "Mar": "03" ... }
              date_ar = date.split(/\//)
              day = date_ar[0]
              year = date_ar[2]
              month = monthes[date_ar[1]]
              new_date = [month, day, year].join("/")
              

              【讨论】:

                【解决方案12】:

                使用这个功能

                function dateFormat(existingFormat,neededFormat,existingSeperator,newSeperator,dateValue)
                {
                        var exst    =    existingFormat.toLowerCase().split(existingSeperator);
                        var d       =    dateValue.split(existingSeperator);
                        d[exst[0]]  =    d[0];  d[exst[1]]=d[1];   d[exst[2]]=d[2];
                
                        var newst    =    neededFormat.toLowerCase().split(existingSeperator);
                        newDate      =    d[newst[0]] +newSeperator+d[newst[1]] +newSeperator+d[newst[2]];
                        return(newDate); 
                
                }
                var dd    =    dateFormat('dd/yy/mm','mm/dd/yy','/','-','30/87/05');//dateFormat(existingFormat,neededFormat,existingSeperator,newSeperator,dateValue)
                

                //两种格式的日期月份和年份使用相同的名称

                您可以使用此功能将任何格式的日期(仅包括月份日期年份)转换为任何格式。 :)

                【讨论】:

                  猜你喜欢
                  • 2016-06-21
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-08
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-05-05
                  相关资源
                  最近更新 更多