如何使用css获取当前年份?

iswrvxsc  于 2023-06-25  发布在  其他
关注(0)|答案(8)|浏览(228)

我在打印时在网页上附加版权信息,我使用了以下代码

@media print
{
    .page:after
    {
        content: "© 2013 Copyright message";
        font-size: 14px;
        position: absolute;
    }
}

使用css有没有默认的方法来获取当前年份?

kgqe7b3p

kgqe7b3p1#

您可以将日期附加到div本身(data-date)并在服务器端/JavaScript上生成它。然后在CSS中,你可以抓取它(attr(data-date))并附加到内容。它看起来像这样(抱歉,未经测试)

content: "©  " attr(data-date) " Copyright message";

https://developer.mozilla.org/en-US/docs/Web/CSS/attr
http://davidwalsh.name/css-content-attr

wn9m85ua

wn9m85ua2#

window.onload = function()
{
  document.getElementById("spanYear").innerHTML = new Date().getFullYear();
}
Copyright 1900-<span id="spanYear"></span>
x8diyxa7

x8diyxa73#

在纯CSS中,这是不可能的。您需要使用JavaScript getDate()函数,或者如果您有任何可用的服务器端脚本功能,将其打印到您的页面中。
你可以在HTML中添加一个额外的元素,用JS填充日期(年份),默认情况下用display:none隐藏,并在你的打印CSS中设置display:block
如果你真的想远离JavaScript,那么你也许可以在SASS中使用一个变量,但你仍然需要每年更新它!

cetgtptt

cetgtptt4#

我不确定这是否可行,但你可以给予一下。如果你熟悉Sass和Compass(一个css的预处理器和编译器),或者你愿意学习,你可以尝试一下
def SomeController
#...
def create

@model = Model.new params[:model]

@model.date_field_name = Time.now
if @model.save

# whatever should be done if validation passes or

  redirect_to @model

else

  # whatever should be done if validation fails or

  render :new

end`

end#...end
the same problem solved in ruby
我的意思是,由于Sass是构建在Ruby on Rails上的,所以你可以在Ruby中写几行代码,然后在项目中导入文件。编译结束后,您将只得到一个CSS文件。希望我帮了点忙。

sd2nnvve

sd2nnvve5#

如果你使用的是Apache Web服务器,你可以使用SHTML(active),我使用一个页脚文件来处理数千个页面。好吧,这里是:<!--#include virtual="myfile.txt" -->你也可以使用url。<!--#echo var="DATE_LOCAL"--> or <!--#echo var="DATE_GMT"--><!--#config timefmt="%A, %d %B %Y"--><!--#echo var="DATE_LOCAL"-->有大量的命令供您使用,但在我的网站上,我喜欢第一种形式。通过这种方式,我可以使内容虚拟化。所以我的方案是filename.inc,问题是如果你想插入一个新的include,它将不起作用,除非你称之为html/shtml。要让年份自动化,现在使用第一种形式。在你的服务器上,在那个文件里,你现在可以调用JavaScript/PHP/whatever来获取你的日期。
享受克里斯BTW这里是我使用shtml的主页:

<body>
<!--#config timefmt="%A, %B %d %Y"-->
<table WIDTH=100% HEIGHT=20% BORDER=1>
<tr HEIGHT=20%><td><center><font SIZE="+5"><b>Phoenix Trading</b></font><br>
<font SIZE="+2"><i>Buy, Sell, Trade... One to a Million</i></font>
</center></td></tr>
</table>

<table WIDTH=100% HEIGHT=70% BORDER=1>
<tr HEIGTH=70%>
<td width=200 align="left" valign="top">
<center><!--#echo var="DATE_LOCAL"--></center><br>
<p><!--#include virtual="menus/menu.inc"--></p>
</td>
<td valign=center><br>
<!--#include virtual="include/main.inc"-->
</td></tr></table>
<!--#include virtual="include/footer.inc"-->
</body>
41zrol4v

41zrol4v6#

如果你在用smarty你可以

<style>#company_info { content: "Copyright © 2010 - 
{$smarty.const.TIME|date_format:"%Y"} you_company"; }</style>

不工作你必须把它放在标签里。

5cnsuln7

5cnsuln77#

这是可能的,这里有一些例子:
HTML

<h1>Copyright Year in CSS</h1>
<h2>Set the current year using EQCSS</h2>
<footer>Your Name</footer>

CSS

footer {
  padding: 0;
  font-size: 24pt;
}
@element 'footer' {
  $this:before {
    content: '© eval("new Date().getFullYear()")\ '
  }
}

这个例子取自这里:https://codepen.io/tomhodgins/pen/Qybgmo

tez616oj

tez616oj8#

几年前我用Visual Basic(VBScript)解决了版权更新问题,但不幸的是,这真的是一个静音点,因为VB似乎只在旧版本的Internet Explorer中工作(这个VB代码甚至没有出现在Internet Explorer 11中,我只是意识到通过阅读我的页脚这是我显然倾向于忽视的东西!lol)。
这是我的VB代码,如果这有帮助的话,但人们真正需要的是一个过滤器,以隐藏它在任何浏览器以外的IE(...好吧,IE11使一个静音点,太!哈哈)。有没有人有一些快速解决这个问题的方法--但我假设同样的“...需要使用JavaScript”编码问题也适用?kml ;-)谢谢。

<script language="vbscript">
    document.write ("Copyright &copy; 1994-" + cstr(DatePart("YYYY", Now())) + " COPYRIGHT HOLDER NAME. All Rights Reserved.")
</script>

相关问题