如何更改时间格式?

How to change the format of time?

我有一个时间类型的输入,当我点击它时,我可以 select 从 1 点到 12 点一小时,分钟和 AM/PM。 snapshot

当我渲染 selection 时,它以 24 小时制显示。但是,相反,我希望它采用 12 小时格式。
我正在开发一个 react-redux 应用程序。

<input type='time' 
          onChange={(e) => this.setState({
            time: e.target.value
          })}
          value={this.state.time} />
state = {
    time: ''
  }
  render = () => {
    return (
      <span>{time}</span>
    )
  }

您可以使用此功能更改时间格式:

const timeConvertor = (time) => {
  // first checks the correct time format and then split it into components
  time = time.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];

  if (time.length > 1) { // If the time format is correct
    time = time.slice (1);  // Remove full string match value
    time[5] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM based on given hour
    time[0] = +time[0] % 12 || 12; // change the hour based on AM/PM
  }
  return time.join (''); // return new time format as a String
}

例如:

timeConvertor('20:50:00'); // will return '8:50:00PM'