我有一个表格列,其中包含2014年1月1日格式的不同人的出生日期。我需要检查此列中显示的所有出生日期是否在2012年1月1日至1月1日之间的特定范围内,2016年。 我有问题将我的日期范围作为变量传递,并比较我从量角器脚本中的表列获得的值。下面是我写的一段代码
this.matchRange = function(value){
this.names = element.all(by.repeater('row in jsonResponse').column(value));
var startDate = 'Jan 1, 2012';
var endDate = 'Jan 1, 2016';
this.inResults = function(nameString){
return this.names.filter(function(name){
return name.getText().then(function(testDate){
console.log(testDate);
//expect(text).toMatch(nameString)
return testDate >= startDate &&
testDate <= endDate;
});
}).then(function(filteredElements){
// Only the elements that passed the filter will be here. This is an array.
return filteredElements.length > 0;
});
};
};
答案 0 :(得分:0)
如果你想解析像2014年1月1日这样的字符串&#39;你应该使用一个库或一个简单的函数(3行代码)。将字符串解析为日期后,可以直接比较它们:
if (dateA < dateB) {
// dateA is before dateB
}
以MMM D,YYYY格式解析日期的简单函数是:
// Parse date string like Jan 1, 2014
function parseMMMDYYYY(s) {
var months = 'jan feb mar apr may jun jul aug sep oct nov dec'.split(' ');
var b = s.match(/\w+/g) || [];
return new Date(b[2], months.indexOf([b[0].toLowerCase()]), b[1]);
}
console.log(parseMMMDYYYY('Jan 1, 2014').toLocaleString())
&#13;