我有一个带有日期输入字段的表单。如果加载页面,则输入将填充当前日期。但是,如果Chrome从昨天开始并恢复上次打开的标签页,则表单中始终存在昨天的日期。 如果我重新加载页面,它会显示正确的日期。但我希望Chrome能够立即显示当前日期。
任何聪明的想法如何解决这个问题?
更新:页面设置为cache-control:no-cache, private
。
答案 0 :(得分:2)
我在页面上放置了日期字段和JavaScript。结果是从缓存加载页面。表单中仍有昨天的日期,JavaScript的执行方式与页面加载相同。如果我比较我可以检测旧页面的日期:
<input id="form_date" name="form_date" type="hidden" value="2017-12-19 17:52:08">
<script>
// Day compare
Date.prototype.sameDay = function(d) {
return this.getFullYear() === d.getFullYear()
&& this.getDate() === d.getDate()
&& this.getMonth() === d.getMonth();
};
var x_today = new Date();
var x_page_date = new Date($('#form_date').val());
if (console && !x_today.sameDay( x_page_date )){
console.log("Old page!");
console.log('page date: ', x_page_date);
console.log('today: ', x_today);
}
</script>
从这里您可以重新加载页面或询问用户该做什么。
答案 1 :(得分:-2)
您可以使用ajax或获取服务器日期。