【问题标题】:Moment JS Date to C# DateMoment JS 日期到 C# 日期
【发布时间】:2018-06-20 23:44:59
【问题描述】:

我有一个用 C# 制作的 WS,我需要在 POST 中发送这种类型的格式 (/Date(1529536171)/)。

"object": { 
    "data": "data",
    "dateStart": "/Date(1529536171)/",          
}

如何将 Moment JS 给我的日期转换为那种(奇怪的)格式??

我尝试发送具有该格式的字符串,但它不起作用。

【问题讨论】:

  • “1529536171”数字代表什么?
  • 我需要发送这种类型的格式 - 这是否意味着服务器端的反序列化器会理解这种格式并自动将其转换为 C# 日期?
  • 确实,C# 的 WS 被设计为接收这种(非常奇怪的)格式的日期对象。 1529536171 代表我猜是 Unix 格式的日期。但是每次发送 POST 请求时,返回一个 false 表示日期格式不正确。

标签: javascript c# datetime momentjs


【解决方案1】:

根据 Moment.js 的文档,您可以使用 moment.unix(Number) 从 Unix 时间戳(自 Unix 纪元以来的秒数)创建 moment

> let myMomentDate = moment.unix(1529543673)
> myMomentDate
moment("2018-06-20T20:14:33.000")

您也可以调用 moment().unix() 来取回 Unix 时间戳。

> myMomentDate.unix() == 1529543673
true

因此,您可以执行以下操作来获得所需的格式:

> '/Date(' + myMomentDate.unix() +')/'
'/Date(1529543673)/'

【讨论】:

  • 相信我,我已经尝试过像你一样发送一个字符串,但它不起作用。
【解决方案2】:

我认为您指的是unix timestamp。 Moment.js 为您提供了一个可以随意格式化的对象。要将其格式化为时间戳,请尝试以下操作:

moment.unix(yourMomentObject)

这会给你一个时间戳。

如果您想将对象格式化为人类可读的格式,只需:

moment.unix(yourMomentObject).format('MM/DD/YYYY')

【讨论】:

    猜你喜欢
    • 2018-04-24
    • 2020-05-27
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多