웹 사이트에서 현재 연도를 인쇄하는 가장 짧은 방법
바닥 글에 저작권 날짜가 하드 코딩 된 정적 HTML 페이지 수백 개를 업데이트해야합니다. 매년 자동으로 업데이트되는 JavaScript로 바꾸고 싶습니다.
현재 나는 다음을 사용하고 있습니다 :
<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>
이것이 가능한 한 짧습니까?
내가 얻을 수있는 가장 짧은 것은 다음과 같습니다.
<script>document.write(new Date().getFullYear())</script>
그것은 내가 실행 한 모든 브라우저에서 작동합니다.
내가 도착한 방법 :
- 변수 없이도
getFullYear
새로 생성 된을 직접 호출 할 수 있습니다Date
.new Date().getFullYear()
조금 이상하게 보일지 모르지만 신뢰할 만합니다.new Date()
부분이 먼저 수행 된 다음에.getFullYear()
. type
JavaScript가 기본값이므로을 (를) 삭제할 수 있습니다 . 이것은 HTML5 사양의 일부로 문서화되어 있으며 ,이 경우 브라우저가 이미 수행 한 작업을 작성하고있을 가능성이 있습니다.- JavaScript에는 "자동 세미콜론 삽입"기능이 있기 때문에 세미콜론을 끝에 추가 할 수 있습니다. 일반적으로 필자가 무시 하고 가로막는 기능 이지만이 특정 사용 사례에서는 충분히 안전해야합니다.
JavaScript가 활성화 된 브라우저에서만 작동합니다. 이상적으로는 일 sed
년에 한 번 오프라인 배치 작업 ( * nix의 스크립트 등)으로 처리하는 것이 더 좋지만 JavaScript 솔루션을 원한다면 최대한 짧습니다. (이제 나는 운명에 가고 유혹했다.)
TJ의 대답은 훌륭하지만 HTML이 이미 렌더링되고 document.write 스크립트가 모든 페이지 내용을 날짜 연도로 덮어 쓰는 하나의 시나리오에 부딪 쳤습니다.
이 시나리오에서는 다음 코드를 사용하여 기존 요소에 텍스트 노드를 추가 할 수 있습니다.
<div>
©
<span id="copyright">
<script>document.getElementById('copyright').appendChild(document.createTextNode(new Date().getFullYear()))</script>
</span>
Company Name
</div>
내년에 현재 연도 (예 : 2017)를 시작 연도로 사용하여 미래에 시간 프레임을 포함 시키려면 다음과 같이 표시됩니다 : "© 2017-2018, Company.", 다음 코드를 사용하십시오. . 매년 자동으로 업데이트됩니다.
© Copyright 2017<script>new Date().getFullYear()>2017&&document.write("-"+new Date().getFullYear());</script>, Company.
© 저작권 2017-2018, 회사.
그러나 첫해가 이미 지났다면 가장 짧은 코드는 다음과 같이 작성할 수 있습니다.
© Copyright 2010-<script>document.write(new Date().getFullYear())</script>, Company.
<script type="text/javascript">document.write(new Date().getFullYear());</script>
JS 솔루션은 훌륭하게 작동하지만 서버 측 솔루션에 대해 조언합니다. 내가 확인한 사이트 중 일부는 전체 페이지가 비어있는 문제가 있었고 한 해만 한 번만 보였습니다.
그 이유는 document.write가 실제로 전체 문서를 썼습니다.
나는 친구에게 서버 측 솔루션을 구현하도록 요청했으며 그에게 도움이되었습니다. PHP의 간단한 코드
<?php echo date('Y'); ?>
즐겨!
AD와 BC 모두에서 작동하는 가장 짧은 가장 책임있는 버전은 다음과 같습니다.
[드럼 롤 ...]
<script>document.write(Date().split` `[3])</script>
그게 다야. 허용 된 답변보다 6 바이트 짧은.
ES5와 호환 가능해야하는 경우 다음과 같이 해결할 수 있습니다.
<script>document.write(Date().split(' ')[3])</script>
이것이 내가 생각할 수있는 가장 좋은 해결책은 순수한 JavaScript와 함께 작동한다는 것입니다. CSS에서 타겟팅 할 수있는 요소의 스타일을 지정할 수도 있습니다. 연도 대신 추가하면 자동으로 업데이트됩니다.
//Wait for everything to load first
window.addEventListener('load', ()=>{
//Wrap code in IIFE
(function (){
//If your page has an element with ID of auto-year-update the element will be populated with the current year.
var date=new Date();
if(document.querySelector("#auto-year-update")!==null){
document.querySelector("#auto-year-update").innerText=date.getFullYear();
}
})();
});
마크 업
<footer>
© <span id="year">2019</span>
</footer>
자바 스크립트
<script>
document.getElementById("year").innerHTML = new Date().getFullYear();
참고 URL : https://stackoverflow.com/questions/4562587/shortest-way-to-print-current-year-in-a-website
'IT story' 카테고리의 다른 글
Java ArrayList 사본 (0) | 2020.05.11 |
---|---|
TextInputLayout의 플로팅 레이블 색상을 변경하는 방법 (0) | 2020.05.11 |
선 사이의 Android TextView 패딩 (0) | 2020.05.11 |
C #을 사용하여 전체 파일을 문자열로 읽는 방법은 무엇입니까? (0) | 2020.05.11 |
튜플은 파이썬의 목록보다 더 효율적입니까? (0) | 2020.05.11 |