从Javascript"日期"解析日期,月份和年份形成

时间:2013-10-25 18:49:44

标签: javascript html5 forms date

我正在使用以下内容让用户在表单中输入日期:

<input name="name" type="date" id="id"/>

我想知道是否有办法解析日,月和年并将它们设置为不同的变量。我试图只使用Javascript,而不是PHP。

3个变量是整数。

感谢。

3 个答案:

答案 0 :(得分:6)

您最好的选择,如果您接受输入并将其转换为date(按部分拆分或作为Date对象),只需构造一个新的Date对象通过传递输入值:

var input = document.getElementById( 'id' ).value;
var d = new Date( input );

if ( !!d.valueOf() ) { // Valid date
    year = d.getFullYear();
    month = d.getMonth();
    day = d.getDate();
} else { /* Invalid date */ }

通过这种方式,您可以利用Date处理多种输入格式 - 它将需要YYYY / MM / DD,YYYY-MM-DD,MM / DD / YYYY,甚至是全文日期('10月25日, 2013')等,没有你自己编写解析器。然后!!d.valueOf()可以轻松检查有效日期 - 如果好,则为true,否则为false。)

答案 1 :(得分:2)

您需要将值拆分为“ - ”,而不是“/”。如,

$( "input" ).change(function(e) {
   var vals = e.target.value.split('-');
   var year = vals[0];
   var month = vals[1];
   var day = vals[2];
   console.info(day, month, year);
});

这是一个工作示例的jsbin:http://jsbin.com/ayAjufo/2/edit

答案 2 :(得分:0)

您可以尝试这样: -

function parseDate(input) {
  var str= input.split('/');
  return new Date(str[0], str[1]-1, str[2]); 
}

str[1]-1从0开始。

您也可以查看 Date.parse(string) ,但此实现依赖。