使用EJS/Node.js格式化日期



我有一个字符串,格式如下:

2020-05-01T23:59:59

我希望输出的格式如下:

May 1, 2020 - 11:15pm

但我发现了各种相互矛盾的信息,似乎什么都不起作用。

这里有两个选项:

这两种选择中的第一种可能更容易使用moment.js这样的库,它可以很容易地实现以下功能:

moment().format("MMM D, YYYY - hh:mma")
// Should produce May 1, 2020 - 11:15pm

或者,如果您必须使用vanillaJS,或者不愿意安装另一个包,您可以执行以下操作:

const currentDate = new Date();
const dateFormatter = new Intl.DateTimeFormat("en-us", {
month: "long",
day: "numeric",
year: "numeric",
hour: "numeric",
minute: "numeric",
hour12: true
});
const dateParts = Object.fromEntries(dateFormatter.formatToParts(currentDate).map(({ type, value }) => [type, value]));
const dateString = `${dateParts.month} ${dateParts.day}, ${dateParts.year} - ${dateParts.hour}:${dateParts.minute}${dateParts.dayPeriod.toLowerCase()}`;
// dateString should now contain the string May 1, 2020 - 11:15pm

最新更新