更改模板上的日期格式

Change date format on a template

我在 Squarespace 上使用 Foundry template,我需要将 post 页面上的日期格式从英语更改为葡萄牙语。而不是 "May 6" 我需要“6 Mai”。在巴西,我们使用模式 dd/mm/yyyy。在这种情况下,我只想要日期和月份,并翻译所有月份(到:Jan、Fev、Mar、Abr、Mai、Jun、Jul、Ago、Set、Out、Nov、Dez)。

我已经看到有人为那里的其他语言解决了这个问题。但不是葡萄牙语或 Foundry 模板。可以在 Squarespace 的页眉或页脚上进行代码注入。我只需要一个可以做到这一点的 Javascript,覆盖 主题的默认日期格式。

我会通过以下 Javascript 来处理它,通过代码注入插入。请注意,虽然某些月份的缩写是相同的,但为了清楚起见,我将它们包括在内,这样它可能更容易被其他人重复使用。此外,我用于键的缩写(即原始月份缩写)可能不是 Squarespace 实际使用的缩写,因此可能需要更新它们。

<script>
    (function() {
        var dates = document.getElementsByClassName("dt-published date-highlight");
        var newDate;
        var i,I;
        // Create object with 'source' keys on the left, and 'output' values on the right.
        var months = {
            "Jan":"Jan",
            "Feb":"Fev",
            "Mar":"Mar",
            "Apr":"Abr",
            "May":"Mai",
            "Jun":"Jun",
            "Jul":"Jul",
            "Aug":"Ago",
            "Sep":"Set",
            "Oct":"Out",
            "Nov":"Nov",
            "Dec":"Dez"
        };
        // Loop through all dates, replacing months and reordering display.
        //  - Trim extra white space from beginning and end of date.
        //  - Replace multiple consecutive spaces with a single space.
        //  - Split by space into an array.
        //  - Replace month text based on 'months' object key:value pairs.
        //  - Convert array to string, rearranging display order of elements.
        //  - Set new date HTML.
        for (i=0, I=dates.length; i<I; i++) {
            newDate = dates[i].innerHTML.trim();
            newDate = newDate = newDate.replace(/  +/g, ' ');
            newDate = newDate.split(" ");
            newDate[0] = months[newDate[0]];
            newDate = newDate[1] + " " + newDate[0];
            dates[i].innerHTML = newDate;
        }
    })();
</script>