date filter formatting

This commit is contained in:
Matt DeCamp 2021-09-16 16:51:48 -04:00
parent 63f84b5ec2
commit bd20394175
4 changed files with 44 additions and 3 deletions

36
src/filters/dateFilter.js Normal file
View file

@ -0,0 +1,36 @@
/*
Stolen from https://stackoverflow.com/a/31615643
via https://github.com/andy-piccalilli/hylia
*/
const appendSuffix = (n) => {
var s = ['th', 'st', 'nd', 'rd'],
v = n % 100
return n + (s[(v - 20) % 10] || s[v] || s[0])
}
module.exports = function dateFilter(value) {
const dateObject = new Date(value)
const months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
]
// fixes off by one day error
let datePlusOne = dateObject.getDate() + 1
const dayWithSuffix = appendSuffix(dateObject.getDate())
return `${
months[dateObject.getMonth()]
} ${datePlusOne}, ${dateObject.getFullYear()}`
}

View file

@ -0,0 +1,4 @@
module.exports = function w3cDate(value) {
const dateObject = new Date(value)
return dateObject.toISOString()
}

View file

@ -1,9 +1,10 @@
---
layout: base
---
<p>&laquo; Back to posts</p>
<article>
<h2>{{ title }}</h2>
<time>{{ date | dateFilter }}</time>
{{ content | safe }}
{% for tag in tags %}
{% set tagUrl %}/tags/{{ tag | slug }}/{% endset %}

View file

@ -6,8 +6,8 @@
{{ post.data.title }}
</h2>
</a>
<time>
{{ post.data.date }}
<time datetime="{{ post.data.date | w3Date }}">
{{ post.data.date | dateFilter }}
</time>
<p>
{{ post.data.page.excerpt }}