【发布时间】:2021-11-16 14:23:36
【问题描述】:
我在显示日期方面遇到了一些问题。当用户选择一个日期时,我会像这样格式化它
new Date(date).toISOString().split('T')[0];
因为这是我们的 django 后端所期望的格式,然后后端返回这样的日期:
2021-09-02
然后我用 moment.js 格式化从后端返回的日期:
moment.utc(new Date(date)).format('MMM DD')
但问题是,当我选择“September 25”时,我会得到“Sep 25”。
但是我在印度的一些团队成员选择“9 月 25 日”,他们得到“9 月 24 日”。
如果我在我的开发工具中运行new Date('2021-09-02')。
我收到Wed Sep 01 2021 17:00:00 GMT-0700 (Pacific Daylight Time)
他们得到Date Thu Sep 02 2021 05:30:00 GMT+0530 (India Standard Time)
我该如何处理这种极端情况?我不确定是否需要更新存储在后端的格式。需要你的建议
【问题讨论】:
-
这会有所帮助。它关于时区。 stackoverflow.com/questions/15141762/…
-
new Date(date)中 date 的值是多少?请参阅Why does Date.parse give incorrect results? toISOString 返回 UTC 时间戳,而不是本地时间戳。这些不是“边缘情况”,它们是完全可以预测的,应该加以处理或适应。
标签: javascript date momentjs moment-timezone