Сравните, если дата в выборе находится в будущем - PullRequest
0 голосов
/ 25 марта 2020

У меня есть следующие значения в раскрывающемся списке, здесь много раз, но здесь отображается только первое значение:

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

Я хочу ".remove" любые переданные опции. Я знаю, что скрывать параметры с помощью JS - не идеальное решение. Кажется, я не могу получить новую дату (), чтобы принять 24.03.2020 - 13:15.

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Я использовал Момент. 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();
}
});
0 голосов
/ 25 марта 2020

Вы можете использовать библиотеку, например момент. js для более сложного анализа, но, возможно, существует более простое решение, предполагающее, что вы можете изменить содержимое раскрывающегося списка.

Я бы добавил атрибут данных в каждый <option> (или изменить значение, если вы не используете его для чего-либо еще), чтобы сохранить значение времени соответствующей даты (мс с начала эпохи). Например:

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

Я не знаю, как вы генерируете свой список опций, но почти любой язык позволит вам получить числовое c значение времени из даты.

Затем вы можете легко сравнить это значение с new Date().getTime(), чтобы увидеть, не меньше ли оно сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...