我需要更新几百个静态HTML页面,版权日期硬编码在页脚。我想用一些每年都会自动更新的JavaScript来替换它。

目前我正在使用:

<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>

就这么短了吗?


当前回答

TJ的回答很好,但我遇到了一个场景,我的HTML已经呈现,文档。写脚本将覆盖所有的页面内容,只有日期年。

对于这种情况,您可以使用以下代码将一个文本节点附加到现有元素:

<div>
    &copy;
    <span id="copyright">
        <script>document.getElementById('copyright').appendChild(document.createTextNode(new Date().getFullYear()))</script>
    </span>
    Company Name
</div>

其他回答

公认的答案并不总是有效的

最近的一次更新导致我所有的WordPress页脚版权日期都被下推到页面末尾,而不是像以前那样内联写。我相信在其他情况下也会发生这种情况,但这只是我注意到的地方。

如果发生这种情况,你可以通过创建一个空span标签来修复它,并像这样注入你的日期:

<span id="cdate"></span><script>document.getElementById("cdate").innerHTML = (new Date().getFullYear());</script> 

或者如果你在你的网站上启用了jquery,你可以像这样简单一点:

<span id="cdate"></span><script>$("#cdate").html(new Date().getFullYear());</script> 

这与Adam Milecki的答案相似,但要简短得多

使用document.write不是一个好的实践。你可以了解更多关于文档的信息。按这里写。下面是一个比较友好的JavaScript解决方案。是的,有关于InnerHTML有多糟糕的研究,正在研究一个更友好的解决方案。

document.getElementById("year").innerHTML = (new Date().getFullYear());

↑JavaScript

↓ 网页

<p>Company &copy; <span id="year"></span> All Rights Reserved.</p>

这里有一个JSFiddle来测试它。比起JavaScript,我个人更推荐用PHP写今年的,用PHP比JavaScript安全得多。

<?php echo date("Y"); ?>

对于React.js,下面是我在页脚工作的方法…

render() {
    const yearNow = new Date().getFullYear();
    return (
    <div className="copyright">&copy; Company 2015-{yearNow}</div>
);
}

上述专家提供了很多解决这个问题的方法。下面的解决方案可以使用,这将不会阻塞页面渲染,甚至不会重新触发它。

在纯Javascript中:

窗口。addEventListener(“负载”,( 函数(){ . getelementbyid(“copyright-year”).appendChild ( document.createTextNode ( 新日期().getFullYear () ) ); } )); < div >软件是< span id = " copyright-year " > < / span > < / div >

jQuery:

$(文档)时函数(){ . getelementbyid(“copyright-year”).appendChild ( document.createTextNode ( 新日期().getFullYear () ) ); }); < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js " > < /脚本> < div >软件是< span id = " copyright-year " > < / span > < / div >

如果你想在未来包含一个时间框架,以当前年份(例如2017年)作为开始年份,这样明年就会像这样显示:“©2017-2018,公司。,然后使用下面的代码。它每年都会自动更新:

&copy; Copyright 2017<script>new Date().getFullYear()>2017&&document.write("-"+new Date().getFullYear());</script>, Company.

©版权所有2017-2018,公司。

但如果第一年已经过去了,最短的代码可以写成这样:

&copy; Copyright 2010-<script>document.write(new Date().getFullYear())</script>, Company.