Jekyll 날짜 형식은 어떻게 작동합니까?


92

Jekyll을 사용하여 간단한 사이트를 생성하고 있습니다.

날짜 필드를 형식으로 표시하고 싶습니다 12 September 2011.

창의적인 인터넷 검색을 통해 약간의 날짜 형식 조작을 찾았지만 월 이름을 알 수있는 것은 없습니다. 내가 가진 것은으로 {{ page.date| date: "%m-%d-%Y" }}출력을 얻지 09-12-2011만 내가 찾고있는 것이 아닙니다.

지킬에서 월을 이름으로 얻을 수있는 방법이 있습니까?

아니면 날짜 속성에 대한 문서가 있습니까?


흥미로운 필터는 다음 date_to_string과 같습니다 date_to_xmlschema( jekyllrb.com/docs/templates 참조 )
Martin Thoma

내가 찾을 수있는 가장 완전한 날짜 jekyll / liquid 날짜 형식화 문서 : alanwsmith.com/jekyll-liquid-date-formatting-examples
joce

답변:


162

해결책

이 출력 필터 :

{{ page.date | date: "%-d %B %Y" }}

다음과 같은 형식의 날짜를 생성합니다.

9 September 2013

하루 -앞의 마이너스 ( ) 를 놓치지 마십시오 %-d. 이것이 없으면 10 미만의 숫자는 앞에 0이 붙습니다 (예 :) 09 September 2013.

개별 날짜 형식화 토큰에 대한 자세한 내용은 Liquid "출력 태그 및 필터"문서 페이지 에서 찾을 수 있습니다 .

더 많은 정보

많은 Jekyll 날짜 형식화 예제를 모았습니다 . 여러 형식에 대한 예를 제공하며 원하는 방식으로 형식을 지정할 수있는 충분한 세부 정보를 제공해야합니다. 몇 가지 예는 다음과 같습니다.

  • 2013-09-23
  • 2013 년 9 월 23 일
  • 2013 년 9 월 23 일
  • 2013 년 7 월 4 일 (즉, "7 월"대신 "Juli"와 같은 다른 언어로 이름 변경).

즐겨!


NNXX 형식, 즉 1st 2nd 3rd 등으로 포맷 할 수 있습니까?
Ian

@Ian-나는 Liquid 날짜 포맷터를 사용하여 "1st", "2nd"등을 수행하는 방법을 찾지 못했습니다. 추가 논리를 던져서 가능할 수 있습니다. 구체적으로 다른 질문을 게시하고 누군가가 방법을 알고 있는지 확인하십시오.
Alan W. Smith

@Ian- 여기 에 첫 번째, 두 번째, 세 번째 질문에 대한 또 다른 답변을 게시했습니다 . 또한 날짜 형식 스 니펫의 참조 세트를 가리 키도록 내 답변을 업데이트하고 있습니다.
앨런 W. 스미스

사용하지 마십시오 plus: '0'. 사용 : {{ page.date | date: "%-m-%d-%Y" }}. %와 m : 사이의 하이픈을 확인 하십시오 %-m.
Nowaker 2013-09-26

1
@DamianNowak-사용 포인터 주셔서 감사합니다 %-m. 훨씬 깨끗합니다. 이를 반영하기 위해 답변을 업데이트했으며 가능한 한 빨리 참조 게시물을 업데이트하겠습니다.
앨런 W. 스미스

14

Jekyll은 액체에 필터 확장을 추가합니다. 를 참조하십시오 여기 . date_to_long_string필터 를 실행하여 원하는 날짜 형식을 표시 할 수 있습니다 .

링크에서 :


긴 문자열 날짜

긴 형식 (예 : "2011 년 1 월 27 일")으로 날짜를 지정합니다.

{{ site.time | date_to_long_string }} => 17 November 2008


4

Jekyll 3.8은 기본적으로 서수 날짜를 지원합니다. 월을 출력하려면 다음 중 하나를 사용하십시오.

{{ page.date | date_to_long_string: "ordinal", "US" }}출력 April 24th, 2018됩니다.

{{ page.date | date_to_string: "ordinal", "US" }}출력 Apr 24th, 2018됩니다.

{{ page.date | date_to_long_string: "ordinal" }}출력 24th April 2018됩니다.

{{ page.date | date_to_string: "ordinal" }}출력 24th Apr 2018됩니다.


3

"전체 월 이름 (``1 월 '')"을 의미하는 '% B'를 사용해보십시오.

일반적으로 날짜를 문자열로 변환하는 데 사용되는 함수 인 strftime에 대한 문서를 검색하십시오.


2

사용자 지정 솔루션을 원하는 경우 다음과 같이 원하는대로 날짜 형식을 지정하는 Jekyll 플러그인을 작성할 수 있습니다 (이 예제는 이탈리아 날짜 용입니다).

module Jekyll
    module ItalianDates
        MONTHS = {"01" => "gennaio", "02" => "febbraio", "03" => "marzo",
                "04" => "aprile", "05" => "maggio", "06" => "giugno",
                "07" => "luglio", "08" => "agosto", "09" => "settembre",
                "10" => "ottobre", "11" => "novembre", "12" => "dicembre"}

        # http://man7.org/linux/man-pages/man3/strftime.3.html
        def italianDate(date)
            day = time(date).strftime("%e") # leading zero is replaced by a space
            month = time(date).strftime("%m")
            year = time(date).strftime("%Y")
            day+' '+MONTHS[month]+' '+year
        end

        def html5date(date)
            day = time(date).strftime("%d")
            month = time(date).strftime("%m")
            year = time(date).strftime("%Y")
            year+'-'+month+'-'+day
        end
    end
end

Liquid::Template.register_filter(Jekyll::ItalianDates)

이것을 다음과 같은 파일에 저장 _plugins/italian_dates.rb하고 템플릿에서 필요에 따라 사용하십시오.

<time datetime="{{page.date | html5date}}">{{page.date | italianDate}}</time>

2

2011 년 9 월 12 일과{{ page.date| date: "%d %B %Y" }} 같은 날짜에 사용 하고 , Jekyll 날짜 형식 에 대한 멋지고 빠른 형식 지정 가이드를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.