【问题标题】:Date-fns is being received as null value on the backendDate-fns 在后端被接收为空值
【发布时间】:2020-03-07 07:39:21
【问题描述】:
  • 前端:反应
  • 后端:SpringBoot
  • BE 上的日期格式:2011-10-05T14:48:00.000Z

我尝试使用 date-fns 将正确格式从 FE 发送到 BE 应用程序,即使按照文档进行操作,BE 也收到 null。

Salvar = async () => {
    const {update} = this.state;
     const {dtInclusao} = this.state.compra.dtInclusao
     var result = parse(
     dtInclusao,
     "dd/mm/yyyy",
     new Date()
     )
      const response = await api.post('SolicCompra/compra', 
      {...this.state.compra, dtInclusao: result},  {'Content-type': 
      'application/json'});

预期格式为dd/MM/yyyy

【问题讨论】:

  • 请参阅:Do posts have to be in English on Stack Exchange? 使用 edit 选项更正它或将其移动到链接帖子中提到的适当 StackExchange 站点。
  • 正确的 StackExchange 站点:pt.stackoverflow.com
  • 能否在发出 API 请求之前添加console.log(result)
  • @JakeLuby 是的! “无效日期”
  • 我在下面发布了一个我认为应该有帮助的答案。假设您的 dtInclusao 变量是有效的日期字符串

标签: javascript reactjs parsing date-fns


【解决方案1】:

以下是我经常使用的一些 date-fns 助手:

export const parseDate = dateString => {
  return Date.parse(dateString.replace(/-/g, '/').replace('T', ' '))
}

export const formatDate = date => {
  return format(date, 'dd/MM/yyyy')
}

第一个将日期和时间戳解析为Date 对象。第二个将获取该日期对象并将其格式化回您想要的格式的字符串。

使用这些辅助函数,您可以将代码更新为:

var result = formatDate(parseDate(dtInclusao))

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 2021-12-22
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2021-06-16
    • 2021-06-24
    • 2021-12-07
    • 2019-05-06
    相关资源
    最近更新 更多