隐藏字段中的当前日期和当前时间

时间:2016-08-27 14:48:29

标签: forms date time field hidden

您好我正在寻找一种在我的表单中添加2个隐藏字段的方法,用于保存当前日期和当前时间。

<input type="hidden" name="date" value="CurrentTime"> 
<input type="hidden" name="time" value="CurrentDate">

谢谢。

1 个答案:

答案 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;
}

并对当时的hoursmins执行相同操作:

if (hours < 10) {
  hours = "0" + hours;
}
if (mins < 10) {
  mins = "0" + mins;
}

然后然后将值分配给字段,如上所述。

这里也是一个JSFiddle:https://jsfiddle.net/y3go8hm8/1/

希望这有帮助! :)