dayjs 无法正确解析英式英语日期

问题描述

我正在试用 dayjs。按照文档中的示例,我在我的 HTML 脚本中进行了设置:

<script src="https://unpkg.com/dayjs@1.10.4/dayjs.min.js"></script>
<script src="https://unpkg.com/dayjs@1.10.4/locale/en-gb.js"></script>

在我的 JS 代码中,我有以下几行:

var locale = dayjs.locale('en-gb');
var date = dayjs('1/4/21').format('DD MMM YYYY');

第一行正确地将 locale 返回为 'en-gb'。但是,根据 DMY 的标准英式英语日期顺序,第二行返回 date 为 '04 Jan 2021',而它应该是 '01 Apr 2021'。

我已经检查了 en-gb 语言环境文件的日期是否正确。

我该如何解决这个问题?

编辑

我发现 moment 在使用 moment-with-locales.js 时也有同样的问题。

解决方法

这可能无法回答问题,因为您特别询问如何使用本地功能解析日期。但我使用自定义解析插件解决了这个问题:

const customParseFormat = require("dayjs/plugin/customParseFormat");
dayjs.extend(customParseFormat);
dayjs("01/04/2021","DD/MM/YYYY").format("DD MMM YYYY")