首页 > 解决方案 > 在 React 中将字符串时间转换为 12 小时格式

问题描述

我已将放映时间作为参数传递,我想将其转换为 12 小时格式,以下是我的代码

componentDidMount() {
  let movieInfo = queryString.parse(this.props.location.search)
  console.log(movieInfo.movieid) 
  this.setState(movieInfo)
  console.log(movieInfo.name)          
  movieData = movieInfo         
}

我的网址:是 http://localhost:3000/#/seat-booking?showtimes= 2130

我想将“ 2130 ”转换为9.30 PM。有什么建议么??

标签: reactjs

解决方案


可能是这样的。

这假定s是 3 个字符 ( 930) 或 4 个字符 ( 2130),但绝对没有其他验证。

function militaryTimeTo12Hour(s) {
    if(s.length == 3) s = `0${s}`; // 930 -> 0930
    const hour = parseInt(s.substring(0, 2), 10);
    const min = parseInt(s.substring(2, 4), 10);
    if(hour < 12) return `${hour % 12}:${min} AM`;
    return `${hour % 12 || 12}:${min} PM`;
}
> militaryTimeTo12Hour("1230")
"12:30 PM"
> militaryTimeTo12Hour("2130")
"9:30 PM"
> militaryTimeTo12Hour("330")
"3:30 AM"
> militaryTimeTo12Hour("zquz")
"12:NaN PM"
> militaryTimeTo12Hour("3314")
"9:14 PM"
> militaryTimeTo12Hour("-799")
"-7:99 AM"

推荐阅读