Mam następujące wartości na liście rozwijanej, jest wiele razy, ale tylko pierwsza wartość pokazana tutaj:
<select id="wpforms-74405-field_36"><option value="3/24/2020 - 1:15 PM" >3/24/2020 - 1:15 PM</option>....
Chcę „.usunąć” wszystkie opcje, które minęły. Wiem, że ukrywanie opcji za pomocą JS nie jest idealnym rozwiązaniem. Nie mogę uzyskać nowej daty (), aby zaakceptować 24.03.2020 - 13:15.
2 odpowiedzi
Użyłem Moment.js, jak zasugerował Daniel. Przetwarzanie „MM / DD / RRRR” w obiekt 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();
}
});
Możesz użyć biblioteki, takiej jak moment.js, do bardziej zaawansowanego analizowania, ale prawdopodobnie istnieje prostsze rozwiązanie zakładające, że możesz modyfikować zawartość listy rozwijanej.
Dodałbym atrybut danych do każdego <option>
(lub zmieniłbym wartość, jeśli nie używasz go do niczego innego), aby zachować odpowiednią wartość czasu (ms od epoki). Jak na przykład:
<option value="3/24/2020 - 1:15 PM" data-time="1585090680723">3/24/2020 - 1:15 PM</option>
Nie wiem, w jaki sposób generujesz swoją listę opcji, ale większość języków pozwoli ci pobrać liczbową wartość czasu z daty.
Następnie możesz łatwo porównać tę wartość z new Date().getTime()
, aby sprawdzić, czy jest mniejsza niż teraz.
Podobne pytania
Nowe pytania
jquery
jQuery to biblioteka JavaScript, rozważ także dodanie tagu JavaScript. jQuery to popularna biblioteka JavaScript działająca w różnych przeglądarkach, która ułatwia przechodzenie przez Document Object Model (DOM), obsługę zdarzeń, animacje i interakcje AJAX, minimalizując rozbieżności między przeglądarkami. Pytanie oznaczone tagiem jQuery powinno być powiązane z jQuery, więc jQuery powinno być używane przez dany kod i przynajmniej elementy związane z użyciem jQuery muszą znajdować się w pytaniu.