如何使用YY-MM-DD格式的javascript返回月份数和年份?

时间:2015-01-17 07:44:09

标签: javascript jquery

我的“2015-02-17”(yy-mm-dd)格式的文本框中有一个日期。现在我只想返回 2 的月份数和 2015 的年份。我无法使用getMonth()函数正确执行此操作。

我尝试了以下内容:

 // Get date value from the textbox
 var t_date = $("#t_date").val();    // 2015-01-17     
 alert(t_date.getMonth());

它不会显示警告框。好像我的代码无效。 请帮忙。感谢

5 个答案:

答案 0 :(得分:1)

试试这个。

var t_date = new Date($("#t_date").val()); 
alert(t_date.getMonth() + 1); // because months are zero based.

答案 1 :(得分:0)

您可以获得substring,因为您知道当天的格式。这样,您将避免创建Date对象,然后使用其方法获取月份和年份。

var month = input.substring(5,7);

var yaer = input.substring(0,4);

其中input是输入元素的文本。请尝试以下代码段。

// Get the value of date
var input = document.getElementById("date").value;

// Get the month.
var month = input.substring(5,7);

// Get the year.
var year = input.substring(0,4);


alert("month: "+month+" year: "+year);
<input id="date" type="text" value="2015-02-17"/>

如果您希望这些数字是整数,则可以使用parseInt函数。例如,在月份的情况下,你可以试试这个:

var month = parseInt(input.substring(5,7));

答案 2 :(得分:0)

只需在-上拆分,就可以使用索引

获得所需内容
var arr = $("#t_date").val().split('-');
console.log('Year:', arr[0], 'Month:', arr[1], 'Day:', arr[2]);

或者只是将$('#t_date').val()传递给Date构造函数,但您可以在不实例化Date对象的情况下使用上述方法。

答案 3 :(得分:0)

我希望你知道Javascript的月份是从零开始的。意思是,Jan是00,2月是01,3月是02。 您需要做的是使新创建的日期成为变量(var date = newDate(2015,02,17));并创建另一个变量(var month = date.getMonth());和(var year = date.getFullYear());

答案 4 :(得分:0)

首先,文本输入值只是一个字符串,而不是实际日期。字符串值不“知道”getMonth方法。因此,您必须使用Date 1 将其转换为new Date([value])个实例。其次,日期的月份数组(使用getMonth检索)基于零,因此您必须为其添加1才能使其成为“人工”月份数。

1 注意:在这种情况下,字符串是Date构造函数(yyyy-mm-dd)的有效输入,但可能并非总是如此案子。例如,像'15-01-2015'(dd-mm-yyyy)这样的Europan日期字符串无效。 See also ...

showMY();
$('#show').on('click', showMY);

function showMY(e) {
  var t_date = new Date($("#t_date").val());
  if (isNaN(t_date)) {
    $('#result').html('Invalid format. Can\'t create a date from ' +
                      $("#t_date").val());
  } else {
    $('#result').html( 'Month number and year: '+ 
                      (t_date.getMonth() +  1) + ', ' + 
                      t_date.getFullYear() );
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="t_date" value="2015-01-17"> <button id="show">show month/year</button>
<div id="result"></div>