如何在 Adonisjs 中格式化日期?

How to format Date in Adonisjs?

我需要向数据库发送日期格式,例如:DD-MM-YYYY。 或者使用 Edge 模板在前端格式化的某种方式

class AtendimentoSchema extends Schema {
  up () {
    this.create('atendimentos', (table) => {
      table.increments()
      table.date('data_emissao')
      table.timestamps()
    })
  }

  down () {
    this.drop('atendimentos')
  }
}

我试过了

class Atendimento extends Model {



        static formatDates (field, value) {
            if (field === 'data_emissao') {
              return value.format('DD-MM-YYYY')
            }
            return super.formatDates(field, value)
          }


}

** JSON 输出**

{
  "data_emissao": "2020-02-14",
  "id": 2
}

如果你能使用外部包试试 moment js,它会帮助你

格式仅接受默认的 create_at 和 update_at 列,如果您格式化另一列,那么您可以像这样使用 get dates

static get dates () {
    return super.dates.concat(['column_name'])
  }

在你的情况下,列名是 data_emissao

示例:-

class Atendimento extends Model {


static get dates () {
    return super.dates.concat(['data_emissao'])
  }

static formatDates (field, value) {
     if (field === 'data_emissao') {
         return value.format('DD-MM-YYYY')
        }
     return super.formatDates(field, value)
   }


}

更多细节检查adonis.js official doc

2021 年(adonis-ts-app 版本 4) 在模型中使用 @column.date() 装饰器:

@column.date()
public data_emissao: DateTime

the reference: ORM: Decorators

然后你可以使用 luxons toFormat() 转换为字符串:

data_emissao.toFormat('yyyy')