我需要更新几百个静态HTML页面,版权日期硬编码在页脚。我想用一些每年都会自动更新的JavaScript来替换它。
目前我正在使用:
<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>
就这么短了吗?
我需要更新几百个静态HTML页面,版权日期硬编码在页脚。我想用一些每年都会自动更新的JavaScript来替换它。
目前我正在使用:
<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>
就这么短了吗?
当前回答
JS解决方案很好,但我建议使用服务器端解决方案。我检查过的一些网站有这样的问题,整个页面都是空白的,只在一段时间内看到年份。
这样做的原因是文件。写实际上写满了整个文档。
我让我的朋友实现了一个服务器端解决方案,这对他来说是有效的。 php中的简单代码
<?php echo date('Y'); ?>
享受吧!
其他回答
这里有一个最短最负责任的版本,甚至适用于AD和BC。
(滚筒滚……)
<script>document.write(Date().split` `[3])</script>
就是这样。比接受的答案短6字节。
如果你需要兼容ES5,你可以满足:
<script>document.write(Date().split(' ')[3])</script>
这是我能想到的使用纯JavaScript的最佳解决方案。您还可以在CSS中为元素设置目标样式。只要把年份加进去,它就会自动更新。
//Wait for everything to load first
window.addEventListener('load', () => {
//Wrap code in IIFE
(function() {
//If your page has an element with ID of auto-year-update the element will be populated with the current year.
var date = new Date();
if (document.querySelector("#auto-year-update") !== null) {
document.querySelector("#auto-year-update").innerText = date.getFullYear();
}
})();
});
使用document.write不是一个好的实践。你可以了解更多关于文档的信息。按这里写。下面是一个比较友好的JavaScript解决方案。是的,有关于InnerHTML有多糟糕的研究,正在研究一个更友好的解决方案。
document.getElementById("year").innerHTML = (new Date().getFullYear());
↑JavaScript
↓ 网页
<p>Company © <span id="year"></span> All Rights Reserved.</p>
这里有一个JSFiddle来测试它。比起JavaScript,我个人更推荐用PHP写今年的,用PHP比JavaScript安全得多。
<?php echo date("Y"); ?>
满一年:
document.getElementById(“getyear”).innerHTML = (new Date().getFullYear()); <span id=“getyear”></span>
TJ的回答很好,但我遇到了一个场景,我的HTML已经呈现,文档。写脚本将覆盖所有的页面内容,只有日期年。
对于这种情况,您可以使用以下代码将一个文本节点附加到现有元素:
<div>
©
<span id="copyright">
<script>document.getElementById('copyright').appendChild(document.createTextNode(new Date().getFullYear()))</script>
</span>
Company Name
</div>