2015-01-17 33 views
1

我在'2015-02-17'(yy-mm-dd)格式的文本框中輸入了一個日期。現在我只想返回月份編號和的一年。我無法使用getMonth()函數正確執行此操作。如何在YY-MM-DD格式中使用JavaScript返回月份數和年份?

我試過如下:

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

它不顯示的警告框。好像我的代碼無效。 請幫忙。謝謝

+1

向我們展示你嘗試過什麼,什麼是不正確的它 – KooiInc

+0

您可以使用momentjs數據格式:http://momentjs.com/ – cyan

+0

嘗試'str.split( 「 - 」)'並獲得第一個和第二個數組的值 – vidhya

回答

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)); 
1

試試這個。

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

就劈在-,你可以得到你想要使用什麼指數

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

或只是通過$('#t_date').val()Date構造函數,但你可以簡單地使用上述方法沒有實例化一個Date目的。

0

我希望你知道Javascript的月份是基於零的。意思是,Jan是00,2月是01,3月是02. 你需要做的是把新創建的日期變成一個變量(var date = newDate(2015,02,17));並創建另一個變量(var month = date.getMonth());和(var year = date.getFullYear());

0

首先,文本輸入值只是一個字符串,而不是真正的日期。字符串值不知道getMonth方法。因此,您必須將其轉換爲Date實例,使用new Date([value])。其次,日期的月份數組(根據getMonth檢索)基於零,因此您必須添加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>