Comment fonctionne le formatage de date de Jekyll?

J’utilise Jekyll pour générer un site simple.

Je souhaite que le champ date apparaisse au format 12 September 2011 .

J’ai trouvé, à travers un googler créatif, un peu de manipulation du format de date, mais rien ne semble me donner le nom du mois. Ce que j’ai est {{ page.date| date: "%m-%d-%Y" }} {{ page.date| date: "%m-%d-%Y" }} , ce qui me donne un résultat au 09-12-2011 , mais ce n’est pas tout à fait ce que je recherche.

Est-il possible d’obtenir le mois comme nom dans Jekyll?

Ou, sauf cela, existe-t-il une documentation pour l’atsortingbut de date?

Solution

Ce filtre de sortie:

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

produit des dates formatées comme:

 9 September 2013 

Veillez à ne pas manquer le moins ( - ) devant %-d pour la journée. Sans elle, les chiffres inférieurs à dix auraient des zéros importants (par exemple, le 09 September 2013 ).

Vous trouverez des détails sur les jetons de formatage des dates sur la page de documentation Liquide “Balises et filtres de sortie” .

Plus d’informations

J’ai rassemblé un grand ensemble d’exemples de formatage de date Jekyll . Il fournit des exemples pour plusieurs formats et devrait fournir suffisamment de détails pour formater comme vous le souhaitez. Quelques exemples incluent:

  • 2013-09-23
  • 23 septembre 2013
  • 23 septembre 2013
  • 4 juillet 2013 (changer les noms en d’autres langues comme “Juli” au lieu de “Juillet”).

Prendre plaisir!

Jekyll ajoute des extensions de filtre au liquide. Voir ici Vous pouvez afficher le format de date souhaité en exécutant simplement le filtre date_to_long_ssortingng .

À partir du lien:


Date à Long Ssortingng

Formatez une date en format long, par exemple «27 janvier 2011».

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

Essayez ‘% B’, ce qui signifie “Nom complet du mois (” Janvier “)”

Recherchez la documentation de strftime, la fonction généralement utilisée pour convertir une date en chaîne.

Au cas où vous souhaiteriez une solution personnalisée, vous pourriez écrire un plug-in Jekyll pour formater une date comme vous le souhaitez, comme ceci (cet exemple concerne les dates en italien):

 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) 

Il suffit de sauvegarder ceci dans un fichier comme _plugins/italian_dates.rb et de l’utiliser comme vous en avez besoin dans les templates:

  

Utilisez {{ page.date| date: "%d %B %Y" }} {{ page.date| date: "%d %B %Y" }} pour des dates comme le 12 septembre 2011 , consultez le guide de mise en forme sympa et rapide sur le format de date Jekyll

Jekyll 3.8 prend en charge les dates ordinales. Pour sortir le mois, utilisez l’un d’entre eux.

{{ page.date | date_to_long_ssortingng: "ordinal", "US" }} {{ page.date | date_to_long_ssortingng: "ordinal", "US" }} sortira April 24th, 2018 .

{{ page.date | date_to_ssortingng: "ordinal", "US" }} {{ page.date | date_to_ssortingng: "ordinal", "US" }} sortira le Apr 24th, 2018 .

{{ page.date | date_to_long_ssortingng: "ordinal" }} {{ page.date | date_to_long_ssortingng: "ordinal" }} sortira le 24th April 2018 .

{{ page.date | date_to_ssortingng: "ordinal" }} {{ page.date | date_to_ssortingng: "ordinal" }} sortira le 24th Apr 2018 .