【问题标题】:Parse LocalDate json to moment in Angular将 LocalDate json 解析为 Angular 中的时刻
【发布时间】:2018-02-27 21:03:45
【问题描述】:

我在 JSON 中从后端接收 LocalDate,看起来像

{"dayOfMonth":25,
 "dayOfWeek":"TUESDAY",
 "dayOfYear":206,
 "month":"JULY",
 "monthValue":7,
 "year":2017,
 "hour":0,
 "minute":0,
 "nano":0,
 "second":0,
 "chronology":{"id":"ISO","calendarType":"iso8601"}}}

我想把它解析成一个瞬间的js对象

 moment(this.car.overview).format();

无效日期

console.log(moment().format(car.overview));

ERROR TypeError: format.replace 不是函数

有人知道如何从这个 JSON 中获取有效的时刻对象吗?

【问题讨论】:

  • 尝试类似 moment().year(car.year).month(car.month)..... 看看你会得到什么。请注意,可能会有一些不一致的地方,例如 1 月的第 0 个月或 1 日
  • 这个日期是汽车实体的一个属性,我想把它作为一个有效的时刻对象

标签: json angular momentjs localdate


【解决方案1】:

你是说这个吗?

PS:如果你收到一个 JSON 字符串,你需要先 JSON.parse 它

var overview = {
  "dayOfMonth": 25,
  "dayOfWeek": "TUESDAY",
  "dayOfYear": 206,
  "month": "JULY",
  "monthValue": 7,
  "year": 2017,
  "hour": 0,
  "minute": 0,
  "nano": 0,
  "second": 0,
  "chronology": {
    "id": "ISO",
    "calendarType": "iso8601"
  }
}

console.log(
  moment({
    y: overview.year,
    M: overview.monthValue - 1,
    d: overview.dayOfMonth,
    h: overview.hour,
    m: overview.minute,
    s: overview.second,
    ms: overview.nano
  })
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

【讨论】:

  • 你知道自动解析json到moment Object的方法吗??
  • 我的意思是获取字符串,作为输出,我得到时刻对象??
  • 是的,我刚刚发布了它。 Moment 可能允许自定义格式,但它不会从您拥有的对象中挑选内容。如果你有一个字符串,你可能需要先 JSON.parse 它
【解决方案2】:

你需要做的是

 moment().minute(this.car.minute.overview.minute).second(this.car.minute.overview.second).hours(this.car.minute.overview.hour) 

等信息阅读https://momentjs.com/docs/#/get-set/

【讨论】:

  • car.overview 这个属性是一个字符串 "{"dayOfMonth":25,"dayOfWeek":"TUESDAY","dayOfYear":206,"month":"JULY","monthValue": 7,"year":2017,"hour":0,"minute":0,"nano":0,"second":0,"chronology":{"id":"ISO","calendarType":" iso8601"}}}"
  • 让某事 = JSON.parse(car.overview);然后使用“某物”变量。而不是 this.car.minute.overview
  • 我想将此字符串解析为有效时刻对象
  • 我告诉过你怎么做 1 解析到对象。然后使用答案
  • 让某事 = JSON.parse(car.overview);然后使用“某物”变量。而不是 this.car.minute.overview 给了我一个错误“ERROR SyntaxError: Unexpected token o in JSON at position 1”
猜你喜欢
  • 1970-01-01
  • 2019-07-02
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多