Я использую rSchedule для получения интервалов рабочего часа. Но часовой пояс игнорируется. Как мне этого добиться?
На вход вводятся интервалы рабочих часов в день с часовым поясом, как показано ниже.
const input = {
workingHours:[{start:9, end:12}, {start:13, end:18}],
timeZone:'Europe/Berlin'
};
С помощью приведенного ниже кода я ожидаю получить интервалы относительно дневных световых сдвигов в году. Однако полученный вывод игнорирует предоставленную мной временную зону.
import { Schedule } from "@rschedule/core/generators";
import '@rschedule/moment-tz-date-adapter/setup';
import moment from 'moment-timezone';
const schedule = new Schedule({
rrules: [
{
frequency: "MONTHLY",//frequency: "WEEKLY",
//byDayOfWeek: ["MO", 'TU', 'WE', 'TH', 'FR'],
duration:1000 * 60 * 60 * 3,//input.workingHours[0].end-input.workingHours[0].start,
byHourOfDay:[12],//input.workingHours[0].end
timezone:'Europe/Berlin',//input.timeZone,
start: moment(Date.UTC(2019, 0, 1)),
end: moment(Date.UTC(2020, 0, 0))
}
]
});
schedule.occurrences().toArray().forEach(adapter => {
console.log(
{
start: adapter.date.toISOString(),
end: adapter.end.toISOString(),
}
)
})
Выход игнорирует часовой пояс:
{ start: '2019-01-01T09:00:00.000Z', end: '2019-01-01T12:00:00.000Z' }
{ start: '2019-02-01T09:00:00.000Z', end: '2019-02-01T12:00:00.000Z' }
{ start: '2019-03-01T09:00:00.000Z', end: '2019-03-01T12:00:00.000Z' }
{ start: '2019-04-01T09:00:00.000Z', end: '2019-04-01T12:00:00.000Z' }
{ start: '2019-05-01T09:00:00.000Z', end: '2019-05-01T12:00:00.000Z' }
{ start: '2019-06-01T09:00:00.000Z', end: '2019-06-01T12:00:00.000Z' }
{ start: '2019-07-01T09:00:00.000Z', end: '2019-07-01T12:00:00.000Z' }
{ start: '2019-08-01T09:00:00.000Z', end: '2019-08-01T12:00:00.000Z' }
{ start: '2019-09-01T09:00:00.000Z', end: '2019-09-01T12:00:00.000Z' }
{ start: '2019-10-01T09:00:00.000Z', end: '2019-10-01T12:00:00.000Z' }
{ start: '2019-11-01T09:00:00.000Z', end: '2019-11-01T12:00:00.000Z' }
{ start: '2019-12-01T09:00:00.000Z', end: '2019-12-01T12:00:00.000Z' }
Ожидаемый вывод:
{ start: '2019-01-01T11:00:00.000Z', end: '2019-01-01T14:00:00.000Z' },
{ start: '2019-02-01T11:00:00.000Z', end: '2019-02-01T14:00:00.000Z' },
{ start: '2019-03-01T11:00:00.000Z', end: '2019-03-01T14:00:00.000Z' },
{ start: '2019-04-01T10:00:00.000Z', end: '2019-04-01T13:00:00.000Z' },
{ start: '2019-05-01T10:00:00.000Z', end: '2019-05-01T13:00:00.000Z' },
{ start: '2019-06-01T10:00:00.000Z', end: '2019-06-01T13:00:00.000Z' },
{ start: '2019-07-01T10:00:00.000Z', end: '2019-07-01T13:00:00.000Z' },
{ start: '2019-08-01T10:00:00.000Z', end: '2019-08-01T13:00:00.000Z' },
{ start: '2019-09-01T10:00:00.000Z', end: '2019-09-01T13:00:00.000Z' },
{ start: '2019-10-01T10:00:00.000Z', end: '2019-10-01T13:00:00.000Z' },
{ start: '2019-11-01T11:00:00.000Z', end: '2019-11-01T14:00:00.000Z' },
{ start: '2019-12-01T11:00:00.000Z', end: '2019-12-01T14:00:00.000Z' }