对于“23-SEP-2021 00:00”的输入日期,我们得到的输出是 2021 年 9 月 22 日,但是对于
“17-SEP-2021 00:00:00”于 2021 年 9 月 17 日返回。
代码如下所示:
export const formatDate = (date) => {
return dayjs(date).format('MMMM DD, YYYY');
};
我一直在看dayjs format,但我不确定是什么原因造成的。我怀疑我的输入月份是缩写的(但可能不是因为两者都使用 SEP),或者是时间中的不同数字(00:00 与 00:00:00)。在线搜索我无法确认这是时间数字差异。任何想法,或者为什么它会是时间部分?
更新:我正在尝试使用 jsfiddle 或 chrome 控制台来尝试这个,所以我不必修改整个网页来查看会发生什么变化。我尝试了 codePen Playground,但我认为我没有看到如何在那里运行它。如图所示,我还尝试了chrome 开发控制台,但出现了我不知道如何修复的错误:
>dayjs(“17-SEP-2021 00:00:00" ).format('MMMM DD, YYYY');
Uncaught SyntaxError: Cannot use import statement outside a module
>require('dayjs')
Uncaught ReferenceError: require is not defined
at <anonymous>:1:1
尝试一个片段,它给出了关于 dayjs 未定义的错误。我一定做错了什么。我使用了这个例子,但是这个例子没有提供关于如何包含 dayjs 的信息。我在那里有dayjs,但由于某种原因,它只在我编辑问题时显示。
//var date = new Date("23-SEP-2021 00:00");
//date = date.toLocaleTimeString('en-US', {timeZone: 'America/New_York'});
//console.log(date);
//console.log(dayjs(date).format('MMMM DD, YYYY'));
console.log(dayjs("2021-09-23T00:00:00-04:00").format('MMMM DD, YYYY'));
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.10.7/dayjs.min.js" integrity="sha256-DLRq9d+sak+DFd9tNntiDhbit2Ap2DBlVfh7l9o+LNM=" crossorigin="anonymous"></script>
Update2:查看module,似乎这可能适用,但我不知道如何将它与我的代码片段一起使用。有任何想法吗?
更新3:添加到试图添加时区但将日期字符串变为时区的片段中,正在返回时间而不是日期,这是 dayjs 不喜欢的。如何使用时区格式化?