用Javascript打印当前年份的最简单方法

我需要更新数百个静态Html页面,这些页面的版权date是在页脚中硬编码的。 我想用一些每年都会自动更新的javascript代替它。

目前我正在使用:

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

这是如此短?

这是我能得到的最短的时间:

 <script>document.write(new Date().getFullYear())</script> 

这将适用于我所碰到的所有浏览器。

我如何到达那里:

  • 您可以直接在新创build的Date上调用getFullYear ,不需要variables。 new Date().getFullYear()可能看起来有点奇怪,但它是可靠的: new Date()部分先完成,然后是.getFullYear()
  • 您可以删除该type ,因为JavaScript是默认值; 这甚至被logging为HTML5规范的一部分,在这种情况下可能是编写了浏览器已经做的事情。
  • 因为JavaScript有“自动分号插入”的function,所以我通常会鄙视和反对,但在这个特定的用例中,它应该是足够安全的。

请注意,这只适用于启用了JavaScript的浏览器。 理想情况下,一年一次,离线批处理作业(* nix等脚本)可以更好地处理,但是如果您需要JavaScript解决scheme,我认为这样做很短。 (现在我已经走了,试试命运。)

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

TJ的答案非常好,但是我遇到了一个场景,在这个场景中,我的HTML已经被渲染,document.write脚本会覆盖所有的页面内容,只有date年份。

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

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

如果您希望在未来包含一个时间范围,以当年(例如2017年)作为开始年份,那么明年将显示如下所示:“©2017-2018,Company。”,然后使用以下代码。 它会每年自动更新:

 &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. 

JS解决scheme效果很好,但我会build议在服务器端的解决scheme。 我检查的一些网站有整个网页的这个问题变得空白,只有一年偶尔看到的一年。

其原因是document.write实际上是在整个文档上写的。

我问我的朋友实施服务器端解决scheme,并为他工作。 在PHP中的简单代码

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

请享用!

如果你想刮尽可能多的字节,你可以做:

 <script>document.write(Date().substr(11,4))</script> 

虽然切片是一个较短的词,我们需要在第二个参数的位置,所以有一个与下一个声明的领带:

 <script>document.write(Date().slice(11,15))</script> 

资料来源: https : //codegolf.stackexchange.com/a/89511/58434