将JavaScript字符串转换为日期
这个问题在这里已经有了答案:
例如,您可以“限制”使用JavaScript的客户端输入内容,以确保输入的数据是数字。 使用该数字输入,您可以非常容易地以所需格式构建字符串。
我已经设置了这个小提琴 ,几乎和下面的代码一样。 小提琴也会进行一些基本检查(比如不接受日期à33/54/1001),并且也解析日期。 输入完整日期后,点击按钮并检查控制台中的输出:它是一个普通的日期对象,可以与另一个日期对象(如今天的日期对象: curdate = new Date();
)进行比较。
但为了让你开始,下面是按键处理程序的简化版本,它处理用户输入:
var keypress = function(e)
{
e = e || window.event;//FROM HERE
var el = e.target || e.srcElement,
char = String.fromCharCode(e.keyCode || e.which);
e.returnValue = false;
e.cancelBubble = true;
if (e.preventDefault)
{
e.preventDefault();
e.stopPropagation();
}//TO HERE, a lot of X-browser issues are adressed
if (char == +(char) && el.value.length < 10)
{//format input:
el.value = (el.value + char).replace(/^([0-9]{0,2})/*([0-9]{0,2})/*([0-9]{0,4})$/,function(all, m, d, y)
{
m += m.length === 2 ? '/' : '';
d += d.length === 2 ? '/' : '';
return m+d+y;
});
}
return e;//done
};
var dateIn = document.getElementById('dateInputElement');
if (dateIn.addEventListener)
{//add event handlers
dateIn.addEventListener('keypress',keypress, false);
}
else
{
return dateIn.attachEvent('onkeypress',keypress);
}
为了更好地理解这段代码,你可能想看看这里和这里。
您可以使用类似Date.js的库来将用户输入的字符串和其他类似日期的值解析为已知格式。 然后直接比较。
if (Date.parse(sdate) > Date.parse(curdate)) {
...
}
使用moment.js,你可以做如下事情:
if (moment(sdate, 'MM/DD/YYYY') > moment(curdate))
...
如果你说curdate
代表“现在”,那么只需要:
if (moment(sdate, 'MM/DD/YYYY') > moment())
...
如果你想确保日期是特定的格式,你可以使用他们的验证功能:
if (moment(sdate, 'MM/DD/YYYY').isValid())
...
链接地址: http://www.djcxy.com/p/18621.html