首页 > 解决方案 > 将 AM/PM 字符串转换为小时

问题描述

我有一个上午/下午时间的自定义数组,我需要将它们转换为 24 小时并加入我的日期字符串(我需要以这种格式发送到服务器:YYYY-mm-dd hh:mm 所以我会在我将 am/pm 格式化为 h) 后加入字符串。这是数组:

time = [
      {
          period: 'AM',
          time: '12:00'
      },
      {
          period: 'AM',
          time: '01:00'
      },
      {
          period: 'AM',
          time: '02:00'
      },
      {
          period: 'AM',
          time: '03:00'
      },
      {
          period: 'AM',
          time: '04:00'
      },
      {
          period: 'AM',
          time: '05:00'
      },
      {
          period: 'AM',
          time: '06:00'
      },
      {
          period: 'AM',
          time: '07:00'
      },
      {
          period: 'AM',
          time: '08:00'
      },
      {
          period: 'AM',
          time: '09:00'
      },
      {
          period: 'AM',
          time: '10:00'
      },
      {
          period: 'AM',
          time: '11:00'
      },
      {
          period: 'PM',
          time: '12:00'
      },
      {
          period: 'PM',
          time: '01:00'
      },
      {
          period: 'PM',
          time: '02:00'
      },
      {
          period: 'PM',
          time: '03:00'
      },
      {
          period: 'PM',
          time: '04:00'
      },
      {
          period: 'PM',
          time: '05:00'
      },
      {
          period: 'PM',
          time: '06:00'
      },
      {
          period: 'PM',
          time: '07:00'
      },
      {
          period: 'PM',
          time: '08:00'
      },
      {
          period: 'PM',
          time: '09:00'
      },
      {
          period: 'PM',
          time: '10:00'
      },
      {
          period: 'PM',
          time: '11:00'
      }
  ];

我没有尝试任何东西,所以无法提供示例代码,不知道该去哪里。是否有一些简单的功能可以做到这一点?我没有使用 moment.js 或任何东西,只是一个定制的下拉列表,带有一个 for 循环,它从这个数组中写入时间。

标签: javascript

解决方案


迭代每个数组(时间)元素。结果,您可以在 24 小时格式的时间之前添加日期。

function convertTimeFormat(time){
    if(time.period === 'AM'){
        return time.time;   
    } 
    else {
        var t = parseInt(time.time.split(":")[0], 10) + 12;
        return t.toString() + ":" + time.time.split(":")[1];
    }
}

for (var i=0; i < time.length; i++) {
   console.log(convertTimeFormat(time[i]));
}

推荐阅读