Подсчитать, на какой день будет определенная дата в Jquery? - PullRequest
0 голосов
/ 18 января 2019

Я хочу иметь возможность вводить любую дату, т. Е. 17.01.2009 (в формате ММ / ДД / ГГГ), и рассчитать, в какой день недели будет использоваться jQuery. Я пытался написать некоторые базовые функции, но мой код довольно ужасен, потому что я только изучаю jQuery. Я хочу, чтобы мои выходные данные выглядели так: «Эта дата будет (день недели), (выбранный месяц), год», поэтому, если введенная дата будет 17.01.2009, выходные данные будут иметь вид «Эта дата - четверг, 17 января». 2019 "

В настоящее время у меня есть два поля для ввода пользователем года: #yearField, который является первыми двумя цифрами года, и #centuryField, который является последними двумя цифрами года (мне нужны лучшие соглашения об именах, я знаю) и поле выбора, позволяющее пользователю выбрать месяц из списка. Я также не уверен в том, как разобрать введенные пользователем месячные числа в число, т. Е. "Январь" = 1, "февраль" = 2 и т. Д.

<script>
setup = function() {
calc = function() {
    // alert("Hey there!");
    // var tip = document.getElementById("checkField").value * 0.20;
    // document.getElementById('tipArea').innerHTML = "The tip is $" + tip;


    var year = $("#yearField").val();
    var century = $("#centuryField").val();
    var level = $("#monthSelect").val();
    var day = $("#dateField").val() + $("#yearField").val() + ($("#yearField").val() * .25) + ($("#centuryField").val() * .25) - ($("#centuryField").val() * 2) ; 





    var message = "That date will be " + $("#monthSelect").val() + " " + day + " " + year + century;
    $("#displayArea").html(message).css("color", "blue").css("font-size", "50px");

}


$("#calcButton").click(calc);

}

$(document).ready(setup);

</script>

В настоящее время выводится «Эта дата будет январь 1002016,75 2019», когда пользователь вводит дату как «100», #yearField как «20» и #centuryField как «19»

1 Ответ

0 голосов
/ 18 января 2019

Вы можете создать объект JavaScript Date, передав значения year, month, day. Обратите внимание, что вы должны -1 от месяца, потому что месяцы, как и большинство вещей в JavaScript, начинаются с 0. (January = 0, December = 11)

Получив дату, вы можете использовать Date.toLocaleString(), что позволит вам передать объект options с вашими предпочтениями форматирования.

$("#btnGetDate").on("click", function() {
  //Get values from the inputs
  var year = $("#txtYear").val();
  var month = $("#ddlMonth").val();
  var day = $("#txtDay").val();

  //Format the date and output it
  var formattedDate = formatDate(year, month, day);
  console.log(`Your date is ${formattedDate}`);
});

function formatDate(year, month, day) {
  //Create a Date object using the values
  var date = new Date(year, month - 1, day);

  //Define how you want the date to be formatted
  var options = {
    weekday: "long",
    year: "numeric",
    month: "long",
    day: "numeric"
  };

  //Format the date according to our options
  return date.toLocaleDateString("en-US", options);
}
input,select {margin-right: 10px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Month
<select id="ddlMonth">
  <option value="01">January</option>
  <option value="02">February</option>
  <option value="03">March</option>
  <!-- and so on... -->
</select>

Day
<input id="txtDay" type="number" placeholder="dd">

Year
<input id="txtYear" type="number" placeholder="yyyy">

<button id="btnGetDate">Output Date</button>

Конечно, это может использовать некоторые ограждения / проверки правильности ввода неверных дат, ввода дня или года в неправильном формате и т. Д., Но я оставлю эту часть на ваше усмотрение!

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