javascript - 将 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 循环,它从这个数组中写入时间。
解决方案
迭代每个数组(时间)元素。结果,您可以在 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]));
}
推荐阅读
- java - 如何在同一控制器 JavaFX 中制作弹出菜单?
- firefox-developer-edition - 复制/粘贴在 Firefox 开发者版中偶尔出现
- global-variables - 如何在一个 defrule 中定义一个全局变量并在 CLIPS 的另一个 defrule 中使用它?
- ionic2 - 检查应用程序是否正在使用 DevAPP
- amazon-s3 - 7TB 文件夹上的 aws s3 同步永远挂起
- html - 如何使输入框在形式上变得平行或相等?
- sql-server - SQL Server 使用公用表表达式避免唯一约束冲突
- python - Theano 无法使用 GPU
- php - 如何从 SQL 数据库中删除新提交
- android - 添加 google plya-services 时,所有 com.android.support 库必须使用完全相同的版本规范