gpt4 book ai didi

javascript - 将今天的日期与日期列表进行比较

转载 作者:行者123 更新时间:2023-11-29 18:22:39 25 4
gpt4 key购买 nike

如果这是重复的,我很抱歉,但我找不到与我的问题相匹配的现有答案(我已经看过了!)。

我有一个包含大约十几个项目的列表,每个项目都有一个 <span>*fixed date*</span> .

包含日期的列表看起来像这样......

<ul id="whatson">
<li>
<span class="chkdate">06/04</span>
somestuff1
</li>
<li>
<span class="chkdate">06/05</span>
somestuff2
</li>
.......
</ul>

我想过滤列表,以便隐藏所有早于今天的日期。

会给我今天的日期,例如mm/dd = 06/04,看起来不错。

我现在想针对每个格式化为例如06/04 并隐藏那些早于今天的项目。

它只需要在页面加载时运行一次。

到目前为止我的代码...

$(document).ready(function () {
var d = new Date();
var month = d.getMonth() + 1;
var day = d.getDate();
var todaysdate = (month < 10 ? '0' : '') + month + '/' + (day < 10 ? '0' : '') + day;

alert("checking " + datetocheck + " against today = " + todaysdate);
--- * temp check *

var datetocheck = $('#whatson li span.chkdate').text();

if (datetocheck < todaysdate) {
$('#whatson li').hide();
} else {
$('#whatson li').show();
};
})

我的警报显示..

Checking 06/0406/04 against today 06/04 *(when all list dates match)*

并正确显示。

更改警报显示的一个或多个列表日期

Checking 06/0306/04 against today 06/04 *(when one or more list dates don't match)*

什么也没有显示。

你能帮忙吗,我以为这很简单,但就是得不到结果?

最佳答案

如评论中所述,比较 Date 类型的变量总是更好(这样您就不必处理到 12 月为止的广泛比较,这可能很麻烦)。因此,我使用的方法是将您的文本转换为 Date输入对象并将其与当前日期进行比较:

  var d = new Date();
d.setHours(0, 0, 0, 0);
var year = d.getFullYear();
$(".chkdate").each(function (i) {
//added a setHours function to make time parameters of Date zero before comparing
((new Date($(this).text() + "/" + year)).setHours(0, 0, 0, 0) < d) ? $(this).closest("li").hide() : $(this).closest("li").show();
});

做出的假设:

编辑:

  • 不得不添加更多行,因为对于当前日期,它也在比较时间,因此不匹配。使用 .setHours(0, 0, 0, 0); 从参数中删除了时间参数
  • 已更改 ><

关于javascript - 将今天的日期与日期列表进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com