javascript - 如何在 HTML 中自动选择当前日期?
问题描述
我想知道如何进行自动日期选择。这是代码。在日期范围选择器中,我希望第二行是当前日期,这意味着每次加载页面时它都应该反映最新日期。
<!DOCTYPE html>
<html>
<head>
<script>
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd
}
if(mm<10){
mm='0'+mm
}
today = yyyy+'-'+mm+'-'+dd;
document.getElementById("datefield").setAttribute("max", today);
function getdate() {
var date1=new Date();
document.getElementById("start2").value = new Date()
document.getElementById("start1").value=date1;
}
function onLoad() {
var y = document.getElementById("myDIV");
y.style.display = "none";
}
function myFunction() {
var x = document.getElementById("mySelect").value;
var y = document.getElementById("myDIV");
if (x === "Momentum") {
y.style.display = "block";
}
else {
y.style.display = "none";
}
}
</script>
<script>
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
var optComponent = {
format: 'mm-dd-yyyy',
container: '#datePicker',
orientation: 'auto top',
todayHighlight: true,
autoclose: true
};
// COMPONENT
$('#datePicker').datepicker(optComponent);
$('#datePicker').datepicker('setDate', today);
</script>
<style>
body {
background-image: url("/static/images/photo2.jpg");
height: 100%;
/* Center and scale the image nicely */
background-position: full;
background-repeat: no-repeat;
background-size: cover;
}
label {
width:180px;
clear:left;
text-align:right;
padding-right:10px;
}
input, label {
float:left;
}
.custom1{
width:14%;
display:inline-block;
float: left;
clear:None;
}
.custom2{
width:17%;
display:inline-block;
float: left;
clear:None;
margin-top:1.5%;
}
.custom3{
position:absolute;
left: 0%;
margin-top:40%;
}
</style>
</head>
<body onload="onLoad()">
<form method="post" action="/BacktestAnalysis">
<div class="custom1">
<p>Strategy list </p>
<select id="mySelect" onchange="myFunction()">
<option enabled selected value> -- select an option -- </option>
<option value="Momentum">Momentum</option>
</select>
<div id="myDIV">
<br> </br>
<label for="number">Moving average window</label> <br> </br>
<input type="number" name="ma" value=13> <br> </br>
</div>
</div>
<div class="custom1">
<p>Rebalance period</p>
<select name="myDropDown2">
<option value='BM'> Monthly</option>
</select>
</div>
<div class="custom2">
<label for="start">Date Range:</label>
<input type="date" id="start" name="start"
min="1940/02/27" value="2005-01-01">
<input type="date" id="start" name="datePicker"
min="2005-01-01" value="">
</div>
<div class="custom3">
<input type="submit" value="Submit" name="ok"/>
</div>
</form>
</body>
</html>
解决方案
据我了解,您希望将第二个日期输入的值更改为当前日期。
这是您的元素(我为它添加了一个类,以便稍后使用它)
<input type="date" id="start" name="datePicker" min="2005-01-01" value="" class="secondDate">
*我为它添加了一个类。
要更改显示日期,我们需要更改该输入的值。之后,我们将从 Date 类中获取当前日期并将新日期分配给我们的元素。像这样 :
let ele = document.querySelector(".secondDate");
var today = new Date();
var d = String(today.getDate() - 1).padStart(2, '0');
var m = String(today.getMonth() + 1).padStart(2, '0');
var y = today.getFullYear();
ele.value = y + "-" + m + "-" + d;
^ 此代码应在您的脚本标签内。但是要始终记住您的脚本代码的一件事应该始终位于正文标记之后。因为你不能改变还不存在的元素!
推荐阅读
- python - Networkx 获得深度的祖先
- node.js - Node.js、Mongoose:如何将产品添加到购物车?
- azure - 同时使用 Azure AD 和 Azure AD B2C 通过 SSO 进行身份验证
- python - 我可以检测到无限嵌套的列表吗?
- c++ - 从任务管理器详细信息列表视图中获取项目
- swift - AudioKit 5 - 混音器一次只播放 1 个 AmplitudeEnvelope
- javascript - 为下一次加载更改所选导航的背景
- java - Maven 全新安装:无法执行目标 org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- amazon-web-services - 如何在嵌套堆栈中使用 AWS CloudFormation 模板中的映射
- aframe - Oculus Quest 2 访问的 A-Frame VR 中是否有最近的更改阻止了被跟踪的手?