RSS 피드의 날짜 형식을 지정하는 방법(RFC-822)
10777 단어 webdebv
그러나 RSS 피드의 유효한 형식
pubDate
을 기억하는 데 어려움을 겪는 경우가 많으며 Google에서 일반 영어(RFC-822)의 올바른 날짜 형식을 찾기가 항상 어려웠습니다. 다음은 미래의 저와 여러분을 위해 이 주제에 대한 링크, 지침 및 코드 스니펫 모음입니다!코드 스니펫에 도달하기 전에 RSS 피드와 RSS 피드를 처음부터 빌드하는 방법에 대해 자세히 알아보려면 제가 작성한 게시물(How to generate an RSS feed for your blog with JavaScript and Netlify functions)을 확인하세요.
RSS 피드 확인
저는 W3C Feed Validation Service을 사용하여 RSS 피드의 유효성을 검사합니다. 여기에서 URI 또는 직접 XML 입력으로 RSS 문서의 유효성을 검사할 수 있습니다.
다음은
pubDate
가 유효하지 않을 때 발생하는 상황입니다. 유효성 검사기는 "pubDate는 RFC-822 날짜-시간이어야 합니다"라고 보고합니다.경고 바로 뒤에 도움말 링크가 있지만 항상 놓치는 부분입니다. 그래서 "RFC-822 날짜-시간 형식"에 대해 계속해서 인터넷 검색을 했지만 좋은 결과는 없었습니다. 마침내 도움말 링크를 클릭해야 한다는 것을 기억할 때까지 😅.
다음 번에 내 블로그에서 아래의 중요한 정보를 검색하는 것을 기억할 것입니다!
유효한 RFC-822 날짜 형식
유효한 RFC-822 날짜는 2002년 10월 2일 수요일 08:00:00 EST 형식을 따라야 합니다.
Wed,
) 02
)세 글자로 된 월(예: Oct)
2002
) 08:00:00
) GMT
또는 +0200
)<pubDate>Wed, 02 Oct 2002 08:00:00 EST</pubDate>
<pubDate>Wed, 02 Oct 2002 13:00:00 GMT</pubDate>
<pubDate>Wed, 02 Oct 2002 15:00:00 +0200</pubDate>
Read the full help doc on the W3C validation service.
JavaScript를 사용하여 RFC-822 날짜 작성
다음은 종속성 없이 일반 JavaScript에서 날짜 문자열을 RFC-822 날짜로 변환하는 방법입니다.
부인 성명! GMT 또는 BST의 두 시간대에 날짜를 저장하므로 코드는 이 두 시간대만 설명합니다. 자신의 시간대에 맞게 자신만의 마법을 사용해야 할 수도 있습니다.
// add a leading 0 to a number if it is only one digit
function addLeadingZero(num) {
num = num.toString();
while (num.length < 2) num = "0" + num;
return num;
}
function buildRFC822Date(dateString) {
const dayStrings = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
const monthStrings = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
const timeStamp = Date.parse(dateString);
const date = new Date(timeStamp);
const day = dayStrings[date.getDay()];
const dayNumber = addLeadingZero(date.getDate());
const month = monthStrings[date.getMonth()];
const year = date.getFullYear();
const time = `${addLeadingZero(date.getHours())}:${addLeadingZero(date.getMinutes())}:00`;
const timezone = date.getTimezoneOffset() === 0 ? "GMT" : "BST";
//Wed, 02 Oct 2002 13:00:00 GMT
return `${day}, ${dayNumber} ${month} ${year} ${time} ${timezone}`;
}
// date in GMT timezone
const exampleOne = buildRFC822Date("2021-11-29T00:00:00.000Z");
// date in BST timezone
const exampleTwo = buildRFC822Date("2021-09-08T00:00:00.000+01:00");
console.log(exampleOne);
console.log(exampleTwo);
Find the code on GitHub 저장소를 포크하고 실행하려는 경우. 지침은 README에 있습니다.
미래의 자신을 위해 반복적으로 어려움을 겪는 모든 것을 기록하고 탐색하라는 주기적 알림입니다. 바라건대, 이 게시물을 작성한 후 미래에 RSS 피드를 구축하는 것이 저에게 평범한 항해가 될 것입니다!
Reference
이 문제에 관하여(RSS 피드의 날짜 형식을 지정하는 방법(RFC-822)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/whitep4nth3r/how-to-format-dates-for-rss-feeds-rfc-822-3d41텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)