如何在 JavaScript 中没有 document.write() 的情况下创建动态版权日期?

How can one create a dynamic copyright date without document.write() in JavaScript?

如何在 JavaScript 中不使用 document.write() 来获取和打印当前年份?

这是针对页脚中典型的版权行;例如,© 2017 Stack Overflow。

现在我正在使用标准 document.write() 方法。

document.write(new Date().getFullYear());

document.getElementById("current-year").innerHTML = new Date().getFullYear();
<span id="current-year"></span>

是的,你可以使用一个元素:

<p>© Stack Overflow <span id="year"> </span></p>

像这样向你的 JS 添加一个 link:

<script src="js/app.js"></script>

在此文件中,您可以执行以下操作:

var date = new Date().getFullYear();

document.getElementById("year").innerHTML = date;

或者您可以像这样简单地使用 php:

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

如果您使用的是 php,只需确保将文件扩展名更改为 PHP。

上面由 user3731460 发布并由 user663031 编辑的非常简单的解决方案非常有效。

在此页面上的线程中,一位评论者问道“使用 document.write 有什么问题(除了取决于客户端设置为正确的年份之外)?”

我不知道 2017 年的原因(最初在这里提出问题时),但现在(2020 年 10 月),chrome 的灯塔扩展给出了警告 'avoid document.write because it can delay page load by tens of seconds.' google 鼓励用户体验,我可以看到 google 可能会在某些时候惩罚 document.write 的使用。

与 JavaScript:

Copyright &copy <script type="text/javascript"> document.write(new Date().getFullYear());</script> [companyName] Communications Inc. All rights reserved.

如果你在类似 here 的地方编译上面的代码,你会得到一个输出 2021 但例如,如果您有一个 footer.vm 文件:

<div id="footerLinks" style="clear:left; text-align:left; color:#282828">
    Copyright &copy <script type="text/javascript"> document.write(new Date().getFullYear());</script> DigiVie Communications Inc. All rights reserved.
  </div>

还有这个 PHP:

&copy; <?php
  $fromYear = 2008;
  $thisYear = (int)date('Y');
  echo $fromYear . (($fromYear != $thisYear) ? '-' . $thisYear : '');?> CompanyName.