我的“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());
它不会显示警告框。好像我的代码无效。 请帮忙。感谢
答案 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>