每个新的一天更新页面

时间:2016-01-10 09:20:08

标签: javascript date

我有一个页面,用户永远无法关闭它。在文本字段中,我有当前日期 enter image description here

我需要每天更新这个日期。但是如何在新的一天开始计算和更新这个值。

2 个答案:

答案 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调用以获取其日期。