कैसे काम करता है 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 )
मार्टिन थोमा

सबसे पूर्ण तिथि jekyll / तरल दिनांक स्वरूपण दस्तावेज़ मुझे मिल सकता है: alanwsmith.com/jekyll-liquid-date-formatting-examples
joce

जवाबों:


161

उपाय

यह आउटपुट फ़िल्टर:

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

स्वरूपित दिनांक जैसे:

9 September 2013

दिन -के %-dलिए माइनस ( ) को याद न करें । इसके बिना, दस से नीचे की संख्या में अग्रणी शून्य (जैसे 09 September 2013) होगा।

टोकेन को अलग-अलग फॉर्मेटिंग फॉर्मेट पर विवरण लिक्विड "आउटपुट टैग्स एंड फिल्टर्स" डॉक्यूमेंटेशन पेज पर मिल सकता है

और जानकारी

मैंने एक साथ Jekyll तिथि के एक बड़े सेट को प्रारूपित किया । यह कई प्रारूपों के लिए उदाहरण प्रदान करता है और आपको किसी भी तरह से प्रारूप को पर्याप्त विवरण प्रदान करना चाहिए। कुछ उदाहरणों में शामिल हैं:

  • 2013-09-23
  • २३ सितंबर २०१३
  • सितम्बर 23, 2013
  • 4 जूली 2013 (अर्थात "जुलाई" के बजाय "जूली" जैसी अन्य भाषाओं में नाम बदलना)।

का आनंद लें!


क्या यह संभव है कि इसे NNXX प्रारूप में प्रारूपित किया जा सके, अर्थात पहली 2nd 3rd आदि?
इयान

@ इयान - मुझे लिक्विड डेट फॉर्मेटर्स के साथ "1st", "2nd" वगैरह ... करने का कोई तरीका नहीं दिखता। यह कुछ अतिरिक्त तर्क के साथ संभव हो सकता है। उस विशेष रूप से एक और प्रश्न पोस्ट करें और देखें कि क्या कोई जानता है कि कैसे।
एलन डब्ल्यू। स्मिथ

@ इयान - मैंने यहां एक और उत्तर पोस्ट किया है जो 1, 2, 3 के प्रश्न को संबोधित करता है। मैं अपने उत्तर को अद्यतन स्वरूपण स्निपेट के संदर्भ सेट पर इंगित करने के लिए भी अपडेट कर रहा हूं।
एलन डब्ल्यू। स्मिथ

उपयोग न करें plus: '0'। का उपयोग करें: {{ page.date | date: "%-m-%d-%Y" }}%और m: के बीच हाइफ़न पर ध्यान दें %-m
नाऊकेर

1
@DamianNowak - सूचक का उपयोग करने के लिए धन्यवाद %-m। यह बहुत क्लीनर है। मैंने उस उत्तर को दर्शाने के लिए अपडेट किया है और जैसे ही मैं अपनी संदर्भ पोस्ट अपडेट करूंगा।
एलन डब्ल्यू। स्मिथ

14

Jekyll तरल में फ़िल्टर एक्सटेंशन जोड़ता है। देखें यहाँ । आप केवल date_to_long_stringफ़िल्टर चलाकर अपनी इच्छित तिथि प्रारूप प्रदर्शित कर सकते हैं ।

लिंक से:


लंबी स्ट्रिंग के लिए तिथि

"27 जनवरी 2011" जैसे लंबे प्रारूप में एक तारीख प्रारूपित करें।

{{ 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

"% B 'आज़माएं जिसका अर्थ है" पूरा महीना नाम (`` जनवरी' ') "

स्ट्रिंग के लिए प्रलेखन की खोज करें, वह फ़ंक्शन जो आमतौर पर स्ट्रिंग को दिनांक परिवर्तित करने के लिए उपयोग किया जाता है।


2

यदि आप एक कस्टम समाधान चाहते हैं, तो आप एक जेकल प्लगइन लिखने की तारीख को प्रारूपित कर सकते हैं जैसे आप चाहते हैं, यह (यह उदाहरण इतालवी तारीखों के लिए है):

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>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.