对此没有标准,因为从逻辑上讲日期和时间戳是两个截然不同的概念。
- 日期涵盖了当天的整个时间范围,而不是特定的时间点。
- 在任何给定时间点,另一个时区的人的日期可能不同,但是日期自己与时区没有任何关联。将日期可视化为日历上的正方形,而不是时间轴上的点。
- 将仅日期值分配给日期+时间值时,许多API将使用午夜(
00:00
)作为默认时间。然而:
此外,您还用momentjs
标记了问题。由于Moment
对象基本上是时间戳(而不是日期),因此,如果提供了仅日期的值,则Moment.js通常将指定一天的开始时间。所涉及的时区是确定实际时刻的关键,这说明了我先前的观点。
例如:
// Parsing as UTC
moment.utc('2019-09-08').format() //=> "2019-09-08T00:00:00Z"
// Parsing as Local Time (my local time zone is US Pacific Time)
moment('2019-09-08').format() //=> "2019-09-08T00:00:00-07:00"
// Parsing in a specific time zone (on a day without midnight)
moment.tz('2019-09-08','America/Santiago').format() //=> "2019-09-08T01:00:00-03:00"
还请记住,有时API可能会被错误命名。 JavaScript Date
对象不是仅用于日期的值,而是实际上是时间戳,就像片刻一样。
,
我只想发布我们的答案是:
- 编码UTC开始时间
moment.utc(moment(date).format('YYYY-MM-DD')).toISOString();
- 在UTC时区进行解码(这样,使用该应用的任何人都会看到相同的日期)
moment.utc(timestamp)
如果我们的API返回的字段中带有单词“ date”(例如endDate
),我们将在UTC进行解析,否则我们将解析为实际的(本地)时间戳,例如{{1} }
本文链接:https://www.f2er.com/3141695.html