我正在使用以下内容让用户在表单中输入日期:
<input name="name" type="date" id="id"/>
我想知道是否有办法解析日,月和年并将它们设置为不同的变量。我试图只使用Javascript,而不是PHP。
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) ,但此实现依赖。