【问题标题】:Zoom api respons with wrong date on creating meetingsZoom api 在创建会议时响应错误的日期
【发布时间】:2021-11-18 08:32:41
【问题描述】:

我有一个应用程序来创建和安排缩放会议,这就是它的工作原理

  1. React 应用程序将数据发送到我的 Express REST API
  2. Express API 将数据转发到 Zoom API
  3. 来自 Zoom API 的响应存储在 Mongo DB 中

在 React 中,我以 start_time: dateTime.toISOString() 发送数据。

我已经记录了来自客户端和 API 的请求和响应:

时间 2019-09-25 04:00PM GMT +5:30 (IST)

  • 应要求:start_time: '2021-09-25T10:30:00.000Z'
  • API 响应:start_time:"2021-09-25T09:41:58Z"

在客户端 new Date(start_time) 转换时返回我创建请求的当前时间。

时间 2019-09-26 05:30PM GMT +5:30 (IST)

  • 应要求:start_time: '2021-09-25T12:00:00.000Z'
  • API 响应:start_time:"2021-09-26T06:30:12Z"

当转换为日期时产生时间12:00PM

我像这样使用 zoom APi 创建会议,在收到 API 响应后,我将响应数据存储到 Mongo DB:

  axios(config)
    .then(function (response) {
      response.data["participants"] = participants;
      const newMeeting = new Meeting(response.data);
      try {
        newMeeting
          .save()
          .exec()
          .then((meeting) => {
            console.log("Successfully store meeting to database");
          });
      } catch (err) {
        console.error(err);
      }
      res.json(response.data);
    })
    .catch(function (err) {
      console.error(err);
    });

我该如何解决这个问题?

【问题讨论】:

  • 从不将日期/时间值存储为字符串,始终使用正确的 Date 对象。那么它很可能会按预期工作。
  • 对不起,我确实有日期类型。我已经更新了问题以反映相同的情况。

标签: reactjs express zoom-sdk


【解决方案1】:

发送start_time: dateTime 而不是start_time: dateTime.toISOString()

日期/时间始终存储为 UTC 时间。通常客户端应用程序会注意以本地时区显示时间。

如果您需要保留输入的时区,则必须将其单独存储在一个额外的字段中。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多