如何创建仅包含时间而不包含日期的 moment 对象?

How do I create a moment object with just the time and not the date?

这是我想要做的。

我想要一个时区为 GMT @16:00 的 moment 对象。

如果这个时间是过去的那么+1d,如果是在未来的那一天。

如何执行此操作以及如何在创建对象后将时间设置为 16:00?

这不起作用:

var day = moment('16:00','HH:mm').tz('GMT');

如果我创建了一个新的时刻对象,我该如何设置之后的时间?

var day = moment.tz('GMT');

没有这样的东西day.set(16:00, 'time of day'):

有吗?

--- 编辑:

创建后如何设置时间?如果我去 moment().tz(GMT) 那么它将是该区域的当前时间。之后如何更改时间?

此外,如何更改该对象的日期?


我有时间串。我想解析它并将其放入我上面制作的时刻对象中。最好的方法是什么?

var time = "16:00";

var day = moment().tz('GMT');

如何从字符串中设置日期时间?

moment.js 和 JavaScript 都没有时间类型。您可以通过为所有时间对象使用任意日期(例如 1970/01/01)来伪造它。

moment("1970-01-01 16:00Z")

编辑:

var time = "16:00"
var day = moment().tz('GMT');
var splitTime = time.split(/:/)
day.hours(time[0]).minutes(time[1]).seconds(0).milliseconds(0);

2020 年编辑:

var time = "16:00"
var day = moment().zone('GMT');
var splitTime = time.split(/:/)
day.hours(parseInt(splitTime[0])).minutes(parseInt(splitTime[1])).seconds(0).milliseconds(0);