在网站上打印当前年份的最短方式
2022-08-30 00:06:13
我需要更新几百个静态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>
这是它变得那么短吗?
几年后,当我做其他事情时,我被提醒(没有)返回一个字符串,并且比我原来的下面出现的字符短一个字符:Date()
new
<script>document.write(/\d{4}/.exec(Date())[0])</script>
字符串 from 中的第一个四位数字序列被指定为年份。(这不是特定的行为 - 尽管这很常见 - 当我在下面的原始答案发布时。Date()
当然,这个解决方案只适用于另外7,979年(截至2021年撰写本文时),因为截至10000年,它将显示“1000”而不是“10000”。
你已经要求一个JavaScript解决方案,所以这是我能得到的最短的:
<script>document.write(new Date().getFullYear())</script>
这将在我遇到的所有浏览器中工作。
我如何到达那里:
getFullYear
Date
new Date().getFullYear()
new Date()
.getFullYear()
type
重要的是要注意,这仅适用于启用了JavaScript的浏览器。理想情况下,这最好作为一个离线批处理作业(*nix上的脚本等)每年处理一次,但是如果你想要JavaScript解决方案,我认为它已经很短了。(现在我走了,诱惑命运。sed
但是,除非您使用的服务器只能提供静态文件,否则最好在服务器上使用模板引擎执行此操作,并使用缓存标头来允许缓存生成的页面,直到日期需要更改为止。这样,您就不需要客户端上的JavaScript。在内容中使用非/标记也会短暂地延迟页面的解析和呈现(正是出于这个原因:因为脚本中的代码可能用于输出HTML)。defer
async
script
document.write
TJ的答案非常好,但我遇到了一个场景,我的HTML已经呈现,document.write脚本将仅用日期年份覆盖所有页面内容。
对于此方案,可以使用以下代码将文本节点追加到现有元素:
<div>
©
<span id="copyright">
<script>document.getElementById('copyright').appendChild(document.createTextNode(new Date().getFullYear()))</script>
</span>
Company Name
</div>