我试图在迭代集合后隐藏一系列与设置日期 () 不匹配的 div 元素。但由于日期有两种不同的格式,我需要在进行比较之前将它们转换为一种标准格式。不幸的是,这不起作用,尽管日期匹配,但所有 div 元素都被隐藏。有人知道出了什么问题吗?谢谢。
Jsfiddle:http://jsfiddle.net/ss308rwa/
HTML
<input type="text" class="form-control date" value="04/06/2015">
<button type="button" class="btn btn-primary" id="search-button">Search</button>
<div class="rideshare-item" data-date="2015-06-04">04/06/2015</div>
<div class="rideshare-item" data-date="2015-06-05">05/06/2015</div>
JS
$('body').on('click', '#search-button', function (event) {
var date = $('.date').val().trim();
$('.rideshare-item, .no-result').hide();
$('.rideshare-item').each(function (a, b) {
var rideshareDate = $(b).data('date');
if (date.length == 0) {
$(this).closest('.rideshare-item').show();
} else if (date.length > 0) {
var timestamp = Date.parse(date)
if (isNaN(timestamp) == false) {
if (parseDateEntry(date) == parseDateAttribute(rideshareDate)) {
$(this).closest('.rideshare-item').show();
}
}
}
});
});
function parseDateEntry(input) {
var parts = input.split('/');
// new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])
return new Date(parts[2], parts[1] - 1, parts[0]);
}
function parseDateAttribute(input) {
var parts = input.split('-');
// new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])
return new Date(parts[0], parts[1] - 1, parts[2]);
}
最佳答案
更改parseDateEntry(date) == parseDateAttribute(rideshareDate)
到parseDateEntry(date).getTime() == parseDateAttribute(rideshareDate).getTime()
会起作用的。
关于javascript - 解析后的日期比较不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29991669/