【问题标题】:can't obtain the correct hour with moment无法获得正确的时刻
【发布时间】:2017-09-12 07:10:15
【问题描述】:

好的,我收到一个小时

"2017-09-12T18:30:00-04:00"

但是当我想把小时格式化为 24 小时时:

 moment(data[i].hora_llegada, "YYYY-MM-DD HH:mm:ss").format("HH:mm:ss"),¿

我得到输出:

"06:30:00"

现在是早上 6:30,但我需要 18:30

当我插入下一个数组时会发生这种情况:

dataAssistsUser.push({
  actualizacion_registro: data[i].actualizacion_registro,
  baja: data[i].baja,
  falta: data[i].falta,
  fecha_laboral: moment(data[i].fecha_laboral, ['YYYY-MM-DD']).format("YYYY-MM-DD"),
  fecha_registro: data[i].fecha_registro, 
  hora_llegada: moment(data[i].hora_llegada, "YYYY-MM-DD HH:mm:ss").format("h:mm:ss"), //problem here
  hora_salida: moment(data[i].hora_salida, "YYYY-MM-DD HH:mm:ss").format("h:mm:ss"), //problem here
  id: data[i].id,
  total_atraso: moment(data[i].total_atraso, ['YYYY-MM-DD HH:mm:ss']).format('mm:ss'),
  user: data[i].user,
  user_id: data[i].user_id,
  vacacion: data[i].vacacion
});

【问题讨论】:

  • 您的格式字符串"YYYY-MM-DD HH:mm:ss"与您的日期字符串"2017-09-12T18:30:00-04:00"不匹配
  • 另外,这只会为我显示18:30:00,即使是错误的格式字符串
  • 另外,如果 实际问题format("h:mm:ss"),正如您在代码注释中指出的那样,那么您真的很惊讶“h”显示 12 小时中的小时格式? RTFM ~ momentjs.com/docs/#/displaying/format

标签: javascript momentjs


【解决方案1】:

改变这个,

moment(data[i].hora_llegada, "YYYY-MM-DD HH:mm:ss").format("HH:mm:ss")

进入:

moment(data[i].hora_llegada, "YYYY-MM-DDTHH:mm:ss").format("HH:mm:ss")

【讨论】:

  • 虽然这是一个潜在的问题,但并不是导致 OP 的时间按原样格式化的原因
  • @Phil,实际上他的格式字符串在这里是 12 小时格式hora_llegada: moment(data[i].hora_llegada, "YYYY-MM-DD HH:mm:ss").format("h:mm:ss"), //problem here。所以我相信这是造成这个问题的原因。
猜你喜欢
  • 2015-01-24
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多