【问题标题】:How do I format a date as ISO date(mongodb) using moment.js?如何使用 moment.js 将日期格式化为 ISO 日期(mongodb)?
【发布时间】:2020-11-13 01:58:13
【问题描述】:

我正在尝试将下面提到的日期转换为 ISO 格式(MongoDB)

  var d = { storedDate: '26/06/2020 05:55:29 PM' };

但是,我无法找到我需要用来以我想要的格式获取它的参数。我尝试了下面的代码。

moment(d.storedDate).format("YYYY-MM-DD HH:mm Z");

我怎样才能得到ISODate("2020-06-26T17:55:29.274Z")

请指教

【问题讨论】:

  • moment().toISOString() documentation
  • @kevinSpaceyIsKeyserSöze 如果我使用 moment(d.storedDate).toISOString() 会变得像这样 2020-06-26T00:11:35.000Z

标签: javascript mongodb momentjs isodate moment-timezone


【解决方案1】:

moment(d.storedDate, 'DD/MM/YYYY HH:mm:ss').toISOString() 将仅返回 MongoDb 所需的 UTC 格式的 ISO 日期。您还需要提供输入日期格式。

【讨论】:

  • 变得像这样 2020-06-26T09:55:29.000Z
  • ISODate() 格式仅用于表示目的,它是 Date() 的包装器。在内部,MongoDB 以整数或字符串格式存储日期。您可以在此处使用 ISODate() 辅助方法。检查这些链接:docs.mongodb.com/manual/core/shell-typescompose.com/articles/understanding-dates-in-compose-mongodb/…
  • 请帮帮我。我应该在这里做什么
  • 试试这个:var date = moment(d.storedDate, 'DD/MM/YYYY HH:mm:ss').toDate(); var output = new ISODate(date);
  • @martinkumar 您是在客户端代码还是服务器端代码上执行此操作?你能解释更多吗?
【解决方案2】:

如果您想存储正确的Date 对象,请使用

moment(d.storedDate, 'DD/MM/YYYY HH:mm:ss').toDate()

您不应将日期/时间值存储为字符串,请使用正确的数据类型。

【讨论】:

  • 低于错误时刻(...).getDate 不是函数
  • 对不起,应该是 toDate()
  • 然后提供输入数据的格式,看我的更新。
  • 我看到以下输出 2020-06-26T09:55:29.000Z 但我的期望是“ISODate("2020-06-26T17:55:29.274Z")”
  • 我认为这正是您的客户显示它的方式。应该是一个合适的 Date 对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
相关资源
最近更新 更多