修改 Datetime-local 输出格式

Modify Datetime-local Output format

我到处搜索,但找不到如何执行此操作。我正在使用 Datetime-local 输入类型:

<input type="datetime-local" />

当用户输入值时,屏幕上的格式如下:

MM/DD/YYYY HH:MM AM/PM

但是当提交表单时,本地日期时间值以这种格式出现:

YYYY-MM-DD:THH:MM

我想保持输入时的格式。我已经搜索但找不到 JavaScript 将获取 datetime-local 的值并将其转换为 MM/DD/YYYY HH:MM AM/PM 格式并将时间设置为上午/下午。当前时间是军事时间,因此 12:59pm 以上的任何内容都会显示 13:00。军时怎么也可以换算?

你可以使用这个功能

function formatDate(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var ampm = hours >= 12 ? 'pm' : 'am';
  hours = hours % 12;
  hours = hours ? hours : 12;
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var year = date.getFullYear();
  var month = date.getMonth();
  month = month < 10 ? '0'+month : month;
  var date = date.getDate();
  date = date < 10 ? '0' + date : date;
  hours = hours < 10  ? '0' + hours : hours;
  minutes = minutes < 10  ? '0' + minutes : minutes;
  var strTime = month + '/' + date + '/' + year + ' ' + hours + ':' + minutes + ' ' + ampm;
  return strTime;
}

console.log(formatDate(new Date));

如果您愿意,可以使用 moment.js,因为您可以根据需要设置格式,但是如果您担心网站大小,那么该库有点重。