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

目前我正在使用:

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

就这么短了吗?


当前回答

如果你想在未来包含一个时间框架,以当前年份(例如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.

其他回答

React.js, 我们可以在单行中使用-

    return 
    <div className="copyright">Company 2015-{new Date().getFullYear()}</div>
    

这是我能想到的使用纯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();
        }
    })();
});

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中:

窗口。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 >