【问题标题】:Convert postgres timestamp (+ timezone) to Date object [Javascript]将 postgres 时间戳(+ 时区)转换为 Date 对象 [Javascript]
【发布时间】:2016-11-27 16:22:12
【问题描述】:

我们的 postgres 数据库返回一个带有时间戳的字符串:'2016-07-24T03:32:45.678Z'

我们正在尝试使用 moment.js 库,但它只接受一个 Date 对象。

如何使用 Javascript 将上述时间戳+时区转换为 Date 对象?

感谢您提供的任何帮助。

【问题讨论】:

  • Moment 接受并且实际上更喜欢字符串。时刻的最佳实践是永远不要使用日期对象,除非它是由第三方 API 提供给您的。当你将它传递给时刻构造函数时,MOment 应该默认解析这种时间格式。
  • 查看解析字符串:momentjs.com/docs/#/parsing/string

标签: javascript postgresql date timestamp momentjs


【解决方案1】:
new Date(dateString.replace(' ', 'T'));

【讨论】:

  • 某些日期转换无效。
  • @ManoharsinhRana:您能否解释一下为什么此代码无法转换某些日期字符串/创建无效转换?也许令人困惑的是,OP 声明他们需要让这个函数与 PG Timestamps WITH timezone 一起工作......当他们的示例显示 +0 时,这是 Postgres 存储没有时区的时间戳的方式(UTC / Unix Compatible)。谢谢!有兴趣听到您的回复!
【解决方案2】:

我需要使用moment(some_date).fromNow()

而不是moment.startOf(some_date).fromNow()

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 2016-07-12
    • 2011-04-14
    • 1970-01-01
    • 2015-03-03
    • 2018-11-26
    • 1970-01-01
    • 2016-01-23
    相关资源
    最近更新 更多