gpt4 book ai didi

datetime - Kendo UI Scheduler 错误地转换时间、向后添加和减去小时

转载 作者:行者123 更新时间:2023-12-02 19:15:13 24 4
gpt4 key购买 nike

我正在使用 Kendo 调度程序,时区偏移似乎是在与应该发生的情况相反的方向上增加和减少小时。

当我将客户端时区更改为更西方的时区时,事件日期时间会添加小时数,而当我将客户端浏览器更改为更东方的时区时,小时数会被减去。

因此,太平洋时区的客户端应该会看到开始时间为上午 10:00,但实际显示为下午 4:00。设置为大西洋时区的客户端会看到开始时间为中午 12:00。

调度程序代码:

$("#scheduler").kendoScheduler({
date: new Date(),
height: 900,
editable: false,
views: [
{
type: "month",
selected: true,
eventHeight: 50,
eventTemplate: $("#event-template-month").html(),
},{
type: "agenda",
eventHeight: 50,
eventTemplate: $("#event-template-sched").html(),
}
],
timezone: "America/New_York",
dataSource: webinarSchedule,
});

事件信息保存在本地 js 文件中的数组中,如下所示:

var webinarSchedule = [//Date are in utc -5:00
{
title: "Part 1 <br/>The Golden Rule",
shortName: "1) The Golden Rule ",
presenter: "Bill Preston",
description: "A great event",
synopsis: "Learn stuff",
seriesNote: "The first of a 4-part series.",
registration: "https://attendee.gotowebinar.com/register/3782113333237861889",
start: new Date("2015/1/24 1:00 PM"),
end: new Date("2015/1/24 1:20 PM"),

},

最佳答案

是的,这似乎不太正确。

我发现在处理 JS 日期(或一般计算中的日期)时保持理智的唯一方法是使用以 ISO 格式序列化的 UTC 日期(一般来说,在服务器上存储 UTC 日期也是一个更好的主意)。因此,我建议使用适合源时区的 ISO 字符串创建事件:

{
title: "Part 1 <br/>The Golden Rule",
shortName: "1) The Golden Rule ",
presenter: "Bill Preston",
description: "A great event",
synopsis: "Learn stuff",
seriesNote: "The first of a 4-part series.",
registration: "https://attendee.gotowebinar.com/register/3782113333237861889",
start: new Date(Date.parse("2015-02-11T13:00:00-05:00")),
end: new Date(Date.parse("2015-02-11T13:20:00-05:00")),
}

然后根本不设置调度程序时区选项(因此它使用本地)。如果您需要传递到服务器,您可能还想首先使用 toISOString 处理日期。 。

关于datetime - Kendo UI Scheduler 错误地转换时间、向后添加和减去小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28226799/

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