【发布时间】:2021-03-06 15:49:52
【问题描述】:
我正在确定 Ember 应用中 Javascript 中两个日历日期之间的差异。我目前正在使用 date-fns 的 differenceInCalendarDays。
现在大部分都提供了所需的结果,唯一的问题是我需要处理计算对时区(而不是浏览器的本地时区)敏感的 2 个日期之间的差异。
据我所知,JS 日期被跟踪为 UTC,日期对象本身没有存储时区。我在 JS 中所做的任何时区本地化都在输出一个字符串。 在考虑时区的情况下,是否有一个好的库或方法来完成 differenceInCalendarDays?
const daysAgo = this.intl.formatRelative(-differenceInCalendarDays(new Date(), someOtherDay), {
unit: 'day',
numeric: 'auto',
timeZone: 'this.intl.timeZone
});
这是我正在做的一个小样本,显然 differenceInCalendarDays 将解析为一个不会考虑任何时区的数字。 differenceInDays 的文档对浏览器的本地时间是时区敏感的(这在此处没有帮助),但 differenceInCalendarDays 没有提及。 任何帮助将不胜感激!
【问题讨论】:
-
在您的情况下,当您说“日历日期”时,您的意思是 只是 一个日期,例如
"2020-11-23"还是您的输入也有时间组件?请举一个someOtherDay的例子——包括它的类型(字符串、数字、Date对象等) -
是的,只是日期没有时间组件。有关上下文,请参阅下面的链接。 somOtherDay 只是一个从同一天到几天的日期对象。 date-fns.org/v2.16.1/docs/differenceInDaysdate-fns.org/v2.16.1/docs/differenceInCalendarDays
-
您应该提供示例数据和输出。例如。假设 2020-01-01 Europe/London 和 2020-01-02 Australia/Sydney,差异应该是 1 天 11 小时吗?还是1天?还是 1.4583 天?
标签: javascript date datetime ember.js timezone