计算特定日期是在Jquery中的哪一天?

时间:2019-01-18 04:01:14

标签: jquery algorithm date math

我希望能够输入任何日期,即1/17/2019(MM / DD / YYY格式)并计算将在星期几使用jQuery。我尝试编写一些基本函数,但是我的代码非常糟糕,因为我只是在学习jQuery。我希望我的输出看起来像“该日期将是(星期几),(选定的月份),年”,因此,如果输入的日期是2019年1月17日,则输出将显示为“该日期是1月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>

当前,当用户输入日期为“ 100”,#yearField为“ 20”和#centuryField为“ 19”时,输出“该日期将是1002016.75 2019”。

1 个答案:

答案 0 :(得分:1)

您可以通过传入值Date来创建JavaScript 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>

当然,这可以在输入无效日期,以错误的格式输入日期或年份等方面使用一些防护措施/验证,但是我将把这一部分留给您!