将Moment对象与时间字符串组合以获取新的时刻对象

时间:2017-11-15 22:32:15

标签: javascript momentjs

我有一个时刻对象和一个单独的时间字符串,如下所示:

var selectedDay = moment();
var time = '6 PM';

我想结合我可以从文档中弄清楚的2,就像这样。

var actualMoment = moment(selectedDay).setTime(time);

time变量可能是以下值:6 AM, 5 PM, 4:30 PM我可能会更改time变量的格式,如果它更容易,但这两个值仍然需要单独的变量。

1 个答案:

答案 0 :(得分:2)

您可以为脚本编写扩展程序:

moment.fn.setTime(str, format){
    var timeParsed = moment(str, format);
    if(timeParsed.isValid() == true)
    {
        return this.hour(timeParsed.hour())
                   .minute(timeParsed.minute())
                   .second(timeParsed.second());
    } else {
        console.warning(" Time couldn't be parsed: " + str + " (format: " format + ")";
        return this;
    }
}

然后在您的示例中使用它:

var selectedDay = moment();
var time = '6 PM';    
var actualMoment = selectedDay.setTime(time, 'h A');