是否有知道将10:12am
和/或12:10pm
转换为ISOString
格式的方法?
到目前为止,我试图检测时间是am
还是pm
,然后删除最后2个字符。之后,我只需添加新的日期字符串,如:
export function timeAMPMToISO(time) {
var newTime = time.slice(0, -2)
var isAmPm = time.substr(-2)
var h = parseInt(newTime.split(':')[0])
var m = newTime.split(':')[1]
var date = new Date().toISOString().substring(0, 11);
if(isAmPm === 'pm'){
if(h === 12){
h = h
}else{
h += 12
}
}
h = (isAmPm === 'am' && h === 12) ? '00' : h;
return `${ date }${ h }:${ m }:00.000Z`;
}
我觉得这不正常。
这是否有现有的库?也许MomentJs
?如果是这样,怎么样?
感谢。
答案 0 :(得分:1)
您可以使用moment (String, String)
解析输入,然后使用toISOString()
。
您的代码可能如下所示:
moment('10:12am', 'hh:mma').toISOString()
hh
令牌匹配1-12小时,mm
匹配0-59分钟,a
匹配上午/下午