gpt4 book ai didi

javascript - 分割包含小时 x -> 小时 y 的 momentJs 对象,值为 15min 对象

转载 作者:行者123 更新时间:2023-12-03 05:03:25 25 4
gpt4 key购买 nike

我使用的moment().add错误吗?因为,使用我的代码,dayTime2 分钟值并没有变大。

目标是在 dayTime2 上增加 15 分钟,只要它超过了白天的值。

示例值:(显然我没有使用这些值 irl,而是 momentJS 对象)

  • startAt = 7 -> 7.15 -> 7.30 等
  • endAt = 10
var dayTime = moment.utc(endAt).format("HH:mm");
var dayTime2 = moment.utc(startAt).format("HH:mm");

while (dayTime2 <= dayTime) {
var data = {
title: 'VAPAA AIKA',
type: 0,
startsAt: dayTime2,
endsAt: moment(dayTime2).add(30, 'minute')
};
moment(dayTime2).add(15, 'minute');
console.log('TIME: ' + dayTime2);
console.log(data);
}

最佳答案

您没有以正确的方式利用时刻。

首先,要从非 ISO 8601 格式的字符串创建 moment 对象,请使用 moment(String, String);或者如果您输入的是数字,您可以使用 moment({unit: value, ...});指定单位(例如小时)。

然后不要比较字符串,但您应该使用 moment comparing functionsisBefore .

代码的另一个问题是 moment(dayTime2).add(15, 'minute') 创建了一个新的 moment 对象,但您需要修改 dayTime2 本身。请改用 dayTime2.add(15, 'month')

请注意,moment 对象是可变的,因此您必须使用 clone() ,如果您不想更改原始值(例如,当您设置 data 对象的 endsAt 属性时)。

这是一个工作示例:

var startAt = 7;
var endAt = '10';
var dayTime = moment.utc(endAt, 'h');
var dayTime2 = moment.utc({h: startAt});

while (dayTime2.isBefore(dayTime)) {
var data = {
title: 'VAPAA AIKA',
type: 0,
startsAt: dayTime2.format('HH:mm'),
endsAt: dayTime2.clone().add(30, 'minute').format('HH:mm')
};
dayTime2.add(15, 'minute');
console.log('TIME: ' + dayTime2.format('HH:mm'));
console.log(data);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

关于javascript - 分割包含小时 x -> 小时 y 的 momentJs 对象,值为 15min 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42117832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com