Javascript比较两个日期,从字符串开始,<= end

Fab*_*ani 5 javascript validation date

我得到了两个字符串(巴西格式):"DD/MM/YYYY",我需要比较两者.由于第一个字段是开头而最后一个字段是结束字段,

我的验证是<= end

即使在ISO上,Date.new(开始)也会生成"无效日期"!

Mat*_*all 8

不要用Date.new.使用new Date().由于日期字符串的格式,我建议单独抓取每个字段并将它们传递给构造函数:

var startYear = parseInt(document.getElementById('startYear'), 10);
var startMonth = parseInt(document.getElementById('startMonth'), 10) - 1; // as per Residuum's comment
var startDay = parseInt(document.getElementById('startDay'), 10);
var start = new Date(startYear, startMonth, startDay);
Run Code Online (Sandbox Code Playgroud)

如果您交了一个日期字符串,那么您可以使用模糊棒棒糖的方法从字符串中获取每个字段.但是,我不确定Date构造函数是否会接受单个字段的未解析字符串.

一旦你有两个你想要比较的日期,只需比较自纪元以来的毫秒数值:

function isValid(start, end) {
    return start.getTime() < end.getTime();
}
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 5

有一个很好的日期处理库叫做datejs,它有一个parseExact(dateStr, format)方法.