2010-12-30 12 views
146

Necesito actualizar unos pocos cientos de páginas Html estáticas que tienen la fecha de copyright codificada en el pie de página. Quiero reemplazarlo con algunos javascript que se actualizarán automáticamente cada año.Forma más corta de imprimir el año actual en Javascript

Actualmente estoy usando:

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

¿Es esto tan corto como se pone?

+33

No entiendo por qué la gente hace esto ... No tiene que actualizar el año de copyright para mantenerlo actualizado. De hecho, esto podría funcionar en tu contra. Si alguien copia su trabajo en 2010, y su sitio web dice 'copyright 2011' porque se actualiza automáticamente en enero, entonces podría interpretarse que sugiere * que * los copió *. ¡Un copyright más antiguo parecería preferible! En todo caso, mantenga una lista actualizada, 'copyright 2009, 2010, 2011' o mejor un rango:' copyright 2009-2011'. – Stephen

+7

@Stephen: Definitivamente quiere una fecha de inicio. La pregunta no dice que él no esté haciendo eso (ya que no citó nada más que el JavaScript que arroja el año). Podría ser fácilmente 'Copyright (C) 2008-

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

Sé que

13

La respuesta de TJ es excelente, pero me encontré con un escenario en el que mi HTML ya se había procesado y el script document.write sobrescribía todos los contenidos de la página con solo la fecha del año.

Para este escenario, puede añadir un nodo de texto al elemento existente con el siguiente código:

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

Si quiere afeitarse la mayor cantidad de bytes como sea posible, que puede hacer:

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

Aunque rebanada es una palabra más corta, necesitamos una posición en el segundo argumento, por lo que hay un empate con la siguiente declaración:

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

Fuente: https://codegolf.stackexchange.com/a/89511/58434

Actualización: Versión que se obtiene con responsabilidad todos los años AD. Y aún 1 byte más corto que la solución aceptada.

<script>document.write(Date().match(/\d+/g)[1])</script> 

O la más corta y la última versión más responsable que aún funciona tanto AD y BC ... redoble de tambores ...

<script>document.write(Date().split` `[3])</script> 

Eso es todo. La versión más corta posible.

+1

¿Qué tal si tu usuario retrocede en el tiempo hasta 1000 AD? f un usuario está usando tu aplicación> 9999 AD? #responsibleCode # NotAnotherY2K;) –

Cuestiones relacionadas