我需要更新几百个静态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>
就这么短了吗?
当前回答
这里有一个最短最负责任的版本,甚至适用于AD和BC。
(滚筒滚……)
<script>document.write(Date().split` `[3])</script>
就是这样。比接受的答案短6字节。
如果你需要兼容ES5,你可以满足:
<script>document.write(Date().split(' ')[3])</script>
其他回答
这里有一个最短最负责任的版本,甚至适用于AD和BC。
(滚筒滚……)
<script>document.write(Date().split` `[3])</script>
就是这样。比接受的答案短6字节。
如果你需要兼容ES5,你可以满足:
<script>document.write(Date().split(' ')[3])</script>
> < div >是<脚本文件。</script>, Company. write(new Date(). getfullyear ()); < / div >
根据chrome审核
对于连接速度慢的用户,动态注入外部脚本 通过document.write()可以延迟页面加载数十秒。 https://web.dev/no-document-write/?utm_source=lighthouse&utm_medium=devtools
所以没有误差的解是:
(new Date).getFullYear();
如果你想在未来包含一个时间框架,以当前年份(例如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.
这是我能想到的使用纯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();
}
})();
});