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

如何使用javascript以YY-MM-DD格式返回月份和年份?,javascript,jquery,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()); 它不显示警报框。好像我的代码无效。 请帮忙。谢谢您可以获得子字符串,因为您

我的文本框中有一个“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());
它不显示警报框。好像我的代码无效。
请帮忙。谢谢

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

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

var yaer = input.substring(0,4);
其中,
input
是输入元素的文本。请尝试以下代码段

//获取日期的值
var输入=document.getElementById(“日期”).value;
//得到这个月。
var月=输入子字符串(5,7);
//拿到今年的奖金。
var年=输入子串(0,4);
警报(“月:+月+”年:+年)
试试这个

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

只需在
-
上拆分,就可以使用索引获得所需内容

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

或者只需将
$('#t_date').val()
传递给
date
构造函数,但您可以简单地使用上述方法,而无需实例化
date
对象。

我希望您知道Javascript的月份是以零为基础的。意思是,一月是00,二月是01,三月是02。
您需要做的是将新创建的日期设置为变量(var date=newDate(2015,02,17));并生成另一个变量(var month=date.getMonth());和(var year=date.getFullYear())

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

1注意:在这种情况下,字符串是
日期
构造函数(yyyy-mm-dd)的有效输入,但情况可能并非总是如此。例如,类似于
'15-01-2015'
(dd-mm-yyyy)的欧罗巴日期字符串将无效

showMY();
$('#show')。在('click',showMY');
函数showMY(e){
var t#u date=新日期($(“#t#u date”).val();
如果(伊斯南(t_日期)){
$('#result').html('格式无效。无法从中创建日期'+
$(“#t#u date”).val();
}否则{
$('#result').html('Month number and year:'+
(t_date.getMonth()+1)+','+
t_date.getFullYear());
}
}

显示月份/年度

向我们展示您尝试过的内容,以及不正确的地方您可以使用momentjs进行数据格式设置:尝试
str.split(“-”)
并获取第一个和第二个数组的值您正在给
getMonth()
一个字符串值作为输入,但它不起作用,因为它需要日期值。尝试使用
split
方法或将输入值更改为正确的日期格式。