比较选择中的日期是否在将来



我在下拉列表中有以下值,有很多次,但这里只显示第一个值:

<select id="wpforms-74405-field_36"><option value="3/24/2020 - 1:15 PM" >3/24/2020 - 1:15 PM</option>....

我想".删除"所有已通过的选项。我知道用JS隐藏选项不是理想的解决方案。我似乎无法接受2020年3月24日下午1:15的新日期((。

您可以使用moment.js等库进行更高级的解析,但如果您可以修改下拉列表的内容,可能会有一个更简单的解决方案。

我会为每个<option>添加一个数据属性(或者更改值,如果您没有将其用于其他任何事情(,以保存相应日期的时间值(自epoch以来的毫秒(。例如:

<option value="3/24/2020 - 1:15 PM" data-time="1585090680723">3/24/2020 - 1:15 PM</option>

我不知道你是如何生成选项列表的,但大多数语言都会让你从日期中检索数字时间值。

然后,您可以很容易地将该值与new Date().getTime()进行比较,看看它是否小于现在。

我按照Daniel的建议使用了Moment.js。正在将"MM/DD/YYYY"解析为Date对象。

var currentlyd = new Date();
$('#wpforms-74405-field_36 > option').each(function() {
var meow = $(this).val();
var currentlyd = moment(currentlyd).add(1, 'hours');
var bigmeow = new Date(moment(meow, "MM/DD/YYYY - hh:mm A"));
var bool = (moment(bigmeow).isAfter(moment(currentlyd)));
if (bool == false && isNaN(bigmeow) == false) {
$(this).remove();
}
});

相关内容

最新更新