您好我正在寻找一种在我的表单中添加2个隐藏字段的方法,用于保存当前日期和当前时间。
<input type="hidden" name="date" value="CurrentTime">
<input type="hidden" name="time" value="CurrentDate">
谢谢。
答案 0 :(得分:1)
您可以使用JavaScript执行此操作。
在id
元素中加入一些input
,以便在JS中识别它们:
<input type="hidden" id="date" name="date" value="CurrentTime">
<input type="hidden" id="time" name="time" value="CurrentDate">
然后,您可以使用JS的Date()
函数来获取当前日期。将变量创建为new Date()
,然后使用该变量上的方法获取您所追踪的日期和时间部分!
以下是您需要的脚本:
<script type="text/javascript">
var d = new Date();
// Set the value of the "date" field
document.getElementById("date").value = d.toDateString();
// Set the value of the "time" field
var hours = d.getHours();
var mins = d.getMinutes();
var seconds = d.getSeconds();
document.getElementById("time").value = hours + ":" + mins + ":" + seconds;
</script>
这是一个JSFiddle,可以看到它的实际应用:https://jsfiddle.net/y3go8hm8/ -
注意,我已将type
更改为text
,而不是hidden
- 或者您无法看到它正常工作!)
<强>格式强>
您可以根据需要设置日期格式,因此上面的示例为您提供“2010年6月12日星期一”格式的日期。
假设你想要dd/MM/yyyy
格式:
// Get today's date
var day = d.getDate();
var month = d.getMonth() + 1; // The months are 0-based
var year = d.getFullYear();
// Set the date field to the current date
document.getElementById("date").value = day + "/" + month + "/" + year;
值得注意的是,小于10的月份或日期将仅显示为1位数(例如12/3/2014)。同样,这也适用于time
。
如果您愿意,可以循环显示日期和月份并添加0
;
if (day < 10) {
day = "0" + day;
}
if (month < 10) {
month = "0" + month;
}
并对当时的hours
和mins
执行相同操作:
if (hours < 10) {
hours = "0" + hours;
}
if (mins < 10) {
mins = "0" + mins;
}
然后然后将值分配给字段,如上所述。
这里也是一个JSFiddle:https://jsfiddle.net/y3go8hm8/1/
希望这有帮助! :)