【问题标题】:getMonth() in Javascript from format dd/mm/yyyy [duplicate]Javascript中的getMonth()格式为dd / mm / yyyy [重复]
【发布时间】:2020-02-20 14:27:41
【问题描述】:

我有一个 dd/mm/yyyy 格式的日期,当我尝试使用 getMonth() 时,我得到了 dd 字段。 例如,如果我有“2019 年 1 月 12 日”,则月份将采用 01 而不是 12。有没有办法从这种格式中获取月份?

这是我的代码:

var beginDate = document.getElementById("beginDate").value;
var month = new Date(beginDate).getMonth();

beginDate 里面有"01/10/2019"(2019 年 10 月 1 日)

【问题讨论】:

  • 显示您正在尝试的代码,以便我们了解您的调用方式
  • @DarrenSweeney 用代码编辑
  • const month = beginDate.trim().split("/")[1]; 其中trim 不是那么必要

标签: javascript


【解决方案1】:

你可以使用getMonth()获取月份,如下图,但这里0=January, 1=February etc.

var date = "05/12/2019"
var d = new Date(date);
var n = d.getMonth();
console.log(n)

【讨论】:

    【解决方案2】:

    让它变得简单。 您不需要外部库:

    var beginDate = "01/10/2019";
    var timeZone = 'your time zone'; //en-GB etc...
    var month = new Date(beginDate).toLocaleString(timeZone , {month: "2-digit"}); //month = 10
    

    【讨论】:

      【解决方案3】:

      javascript中的月份是0索引,表示0代表一月,所以你需要加1才能正确获取月份

      function getMonth(dt) {
        let splitDt = dt.split('/');
        return new Date(`${splitDt[2]}-${splitDt[1]}-${splitDt[0]}`).getMonth() + 1;
      }
      
      console.log(getMonth("01/10/2019"))
      1st oct

      【讨论】:

        【解决方案4】:

        我认为您不需要一些外部库来执行此任务。您应该使用 javascript 日期对象来轻松完成它,getMonth() 返回从011 索引的月份。总是更喜欢 javascript,而不是为库不必要地导入外部 js 文件

        var beginDate = document.getElementById("beginDate").value;
        
        let reg = /(\d\d)\/(\d\d)\/(\d+)/gi;
        const[date,mon,year] = reg.exec(beginDate).splice(1);       
        month = new Date(year,mon-1,date).getMonth(); // months are indexed from 0 to 11 for jan to dec
        console.log(month); // 0 for jan and 11 for dec
        

        【讨论】:

          【解决方案5】:

          你可以使用Moment.js之类的东西

          const beginDate = "22/05/2019"
          
          const date = moment(beginDate, 'DD/MM/YYYY');
          
          const month = date.format('M');
          
          console.log(month)
          
          //05
          

          【讨论】:

          • 能否也分享一下输出。
          • 谢谢,不知道Moment.js,很有帮助。
          • 很高兴为您提供帮助:D
          【解决方案6】:

          最好使用任何外部库,例如 momentjs 或 datejs。试试这个,它现在可能会解决你的问题。

          const date  = "01/12/2019";
          const split = date.split('/');
          
          console.log('day', split[0])
          console.log('month', split[1])
          console.log('year', split[2])

          var date = moment('01/12/2019', 'DD/MM/YYYY');
          console.log(date.month()+1);
          <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script>

          【讨论】:

            猜你喜欢
            • 2013-03-18
            • 1970-01-01
            • 2014-09-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-05-05
            • 2016-07-29
            • 2019-05-15
            相关资源
            最近更新 更多