我希望能够输入任何日期,即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”。
答案 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>
当然,这可以在输入无效日期,以错误的格式输入日期或年份等方面使用一些防护措施/验证,但是我将把这一部分留给您!