我需要更新几百个静态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>
就这么短了吗?
当前回答
如果你想在未来包含一个时间框架,以当前年份(例如2017年)作为开始年份,这样明年就会像这样显示:“©2017-2018,公司。,然后使用下面的代码。它每年都会自动更新:
© Copyright 2017<script>new Date().getFullYear()>2017&&document.write("-"+new Date().getFullYear());</script>, Company.
©版权所有2017-2018,公司。
但如果第一年已经过去了,最短的代码可以写成这样:
© Copyright 2010-<script>document.write(new Date().getFullYear())</script>, Company.
其他回答
使用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"); ?>
这里有一个最短最负责任的版本,甚至适用于AD和BC。
(滚筒滚……)
<script>document.write(Date().split` `[3])</script>
就是这样。比接受的答案短6字节。
如果你需要兼容ES5,你可以满足:
<script>document.write(Date().split(' ')[3])</script>
这个答案与Ray的答案相似,但使用了模板文字和文本回退
<p>©
<span id="copyright-year">2021</span>
Company Name
</p>
<script>
document.getElementById("copyright-year").innerHTML = `${new Date().getFullYear()}`;
</script>
©2022公司名称
document.getElementById("copyright-year").innerText = `${new Date().getFullYear()}`;
同样适用。
TJ的回答很好,但我遇到了一个场景,我的HTML已经呈现,文档。写脚本将覆盖所有的页面内容,只有日期年。
对于这种情况,您可以使用以下代码将一个文本节点附加到现有元素:
<div>
©
<span id="copyright">
<script>document.getElementById('copyright').appendChild(document.createTextNode(new Date().getFullYear()))</script>
</span>
Company Name
</div>
在网站上打印当前年份的最短方法
只需使用这段代码
<?php echo date('Y'); ?>