答案 0 :(得分:0)
如果您愿意依赖浏览器提供日期/时间,那么您可以使用setInterval
经常检查浏览器的当前日期与input
字段中的日期,并随时更新不匹配,例如:
updateDateField = function () {
// Get the field we want to set the date for
var field = document.getElementById('today');
// Check if the field has focus, if it does then the user may be changing it
// so don't perform the update.
if (field == document.activeElement) {
return;
}
// Get the current date
var now = new Date();
// Format the date to YYYY-MM-DD
var yyyy = now.getFullYear().toString();
var mm = (now.getMonth() + 1).toString();
var dd = now.getDate().toString();
var nowStr = [
yyyy,
(mm[1] ? mm : "0" + mm[0]),
(dd[1] ? dd : "0" + dd[0])
].join('-');
// Check if the field value and current date are different
if (field.value != nowStr) {
field.value = nowStr;
}
}
// Check (and update if required) the date field every second
setInterval(updateDateField, 1000);
(格式化日期的代码来自SO帖子Get String in YYYYMMDD format from JS date object?)。
在我的示例中,您需要更改代码以使用input
的ID。
更新:我更改了代码,以便在input
字段具有焦点时不会更新日期(否则我们可能会在更新字段时对其进行更改)。< / p>
答案 1 :(得分:0)
最简单的方法是在页面加载时运行它
setInterval(function (){
document.getElementById('today').value = (new Date()).toISOString().slice(0,10));
}, 60000);
每分钟运行并更新日期字段,如果您需要更频繁地更新或很少更新,只需更改间隔时间。
如果您需要服务器日期,请添加ajax调用以获取其日期。