【问题标题】:Convert time xx:xxam or xx:xxpm to ISOString [duplicate]将时间 xx:xx 或 xx:xx pm 转换为 ISO 字符串 [重复]
【发布时间】:2023-04-09 01:23:01
【问题描述】:

是否有将10:12am 和/或12:10pm 转换为ISOString 格式的已知方法?

到目前为止,我试图检测时间是am 还是pm,然后删除最后两个字符。之后我只是附加新的日期字符串,如:

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 也许?如果有,怎么做?

谢谢。

【问题讨论】:

标签: javascript date time momentjs


【解决方案1】:

您可以使用moment (String, String) 解析您的输入,然后使用toISOString()

您的代码可能如下所示:

moment('10:12am', 'hh:mma').toISOString()

hh 令牌匹配 1-12 小时,mm 匹配 0-59 分钟,a 匹配上午/下午

【讨论】:

  • 这就是我要找的。谢谢。
  • 你对我的问题投了反对票吗?哈哈
  • 不,我不是反对者,我也没有将其标记为重复。 :)
  • 好的,谢谢!没关系:D
猜你喜欢
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
相关资源
最近更新 更多