I have a simple drop down that shows the date. Is there a way to get the day e.g Sunday February 2, 2020 to show in the dropdown list rather than just the date, using jQuery?
var options = document.getElementsByTagName('.date option');
for (i = 0; i < options.length; ++i) {
options[i].innerHTML = options[i].getDay()
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div class="date">
<select name="tour-date">
<option value="2020-02-02" selected="">February 2, 2020</option>
<option value="2020-02-09">February 9, 2020</option>
<option value="2020-02-16">February 16, 2020</option>
<option value="2020-02-23">February 23, 2020</option>
<option value="2020-03-01">March 1, 2020</option>
<option value="2020-03-08">March 8, 2020</option>
<option value="2020-03-15">March 15, 2020</option>
<option value="2020-03-22">March 22, 2020</option>
<option value="2020-03-29">March 29, 2020</option>
<option value="2020-04-05">April 5, 2020</option>
<option value="2020-04-12">April 12, 2020</option>
<option value="2020-04-19">April 19, 2020</option>
<option value="2020-04-26">April 26, 2020</option>
<option value="2020-05-03">May 3, 2020</option>
<option value="2020-05-10">May 10, 2020</option>
<option value="2020-05-17">May 17, 2020</option>
<option value="2020-05-24">May 24, 2020</option>
<option value="2020-05-31">May 31, 2020</option>
<option value="2020-06-07">June 7, 2020</option>
<option value="2020-06-14">June 14, 2020</option>
<option value="2020-06-21">June 21, 2020</option>
<option value="2020-06-28">June 28, 2020</option>
<option value="2020-07-05">July 5, 2020</option>
<option value="2020-07-12">July 12, 2020</option>
</select>
</div>
To make this work you can use the getDay() and getMonth() functions of a Date object to get the indexes of the days which you can convert in to their textual values. You can then provide a function to text() which works out the full date for the given option elements and returns the new value. Try this:
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
$('.date option').text(function() {
var d = new Date($(this).val());
return `${days[d.getDay()]} ${months[d.getMonth()]} ${d.getDate()}, ${d.getFullYear()}`;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div class="date">
<select name="tour-date">
<option value="2020-02-02" selected="">February 2, 2020</option>
<option value="2020-02-09">February 9, 2020</option>
<option value="2020-02-16">February 16, 2020</option>
<option value="2020-02-23">February 23, 2020</option>
<option value="2020-03-01">March 1, 2020</option>
<option value="2020-03-08">March 8, 2020</option>
<option value="2020-03-15">March 15, 2020</option>
<option value="2020-03-22">March 22, 2020</option>
<option value="2020-03-29">March 29, 2020</option>
<option value="2020-04-05">April 5, 2020</option>
<option value="2020-04-12">April 12, 2020</option>
<option value="2020-04-19">April 19, 2020</option>
<option value="2020-04-26">April 26, 2020</option>
<option value="2020-05-03">May 3, 2020</option>
<option value="2020-05-10">May 10, 2020</option>
<option value="2020-05-17">May 17, 2020</option>
<option value="2020-05-24">May 24, 2020</option>
<option value="2020-05-31">May 31, 2020</option>
<option value="2020-06-07">June 7, 2020</option>
<option value="2020-06-14">June 14, 2020</option>
<option value="2020-06-21">June 21, 2020</option>
<option value="2020-06-28">June 28, 2020</option>
<option value="2020-07-05">July 5, 2020</option>
<option value="2020-07-12">July 12, 2020</option>
</select>
</div>
Note that the above calculates and formats the full date. You can simplify this to just append the day name, if preferred:
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
$('.date option').text(function(i, t) {
return `${days[new Date($(this).val()).getDay()]} ${t}`;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div class="date">
<select name="tour-date">
<option value="2020-02-02" selected="">February 2, 2020</option>
<option value="2020-02-09">February 9, 2020</option>
<option value="2020-02-16">February 16, 2020</option>
<option value="2020-02-23">February 23, 2020</option>
<option value="2020-03-01">March 1, 2020</option>
<option value="2020-03-08">March 8, 2020</option>
<option value="2020-03-15">March 15, 2020</option>
<option value="2020-03-22">March 22, 2020</option>
<option value="2020-03-29">March 29, 2020</option>
<option value="2020-04-05">April 5, 2020</option>
<option value="2020-04-12">April 12, 2020</option>
<option value="2020-04-19">April 19, 2020</option>
<option value="2020-04-26">April 26, 2020</option>
<option value="2020-05-03">May 3, 2020</option>
<option value="2020-05-10">May 10, 2020</option>
<option value="2020-05-17">May 17, 2020</option>
<option value="2020-05-24">May 24, 2020</option>
<option value="2020-05-31">May 31, 2020</option>
<option value="2020-06-07">June 7, 2020</option>
<option value="2020-06-14">June 14, 2020</option>
<option value="2020-06-21">June 21, 2020</option>
<option value="2020-06-28">June 28, 2020</option>
<option value="2020-07-05">July 5, 2020</option>
<option value="2020-07-12">July 12, 2020</option>
</select>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With