【问题标题】:FullCalendar one hour aheadFullCalendar 提前一小时
【发布时间】:2011-04-05 16:22:22
【问题描述】:

我正在使用 JQuery 插件来呈现日历 (http://arshaw.com/fullcalendar/)。问题是日期提前一小时。我试图查看文件以找出发生这种情况的位置。

可以节省日光吗?我很无知。数据库中的日期是正确的,但一旦转换为 UNIX 时间戳,它们就会丢失一小时。

我使用它来将我的日期转换为时间戳。

private double ConvertToTimestamp(DateTime value)
{
    //create Timespan by subtracting the value provided from
    //the Unix Epoch
    var date = new DateTime(1970, 1, 1, 0, 0, 0, 0);

    TimeSpan span = (value - date.ToLocalTime());

    //return the total seconds (which is a UNIX timestamp)
    return (double)span.TotalSeconds;
}

但我相信这不是问题所在。

谢谢。

【问题讨论】:

  • 像这样修复:return (double)(span.TotalSeconds + 3600); 这样您将添加丢失的时间...或者,您可以在 new DateTime(1970, 1, 1, 1, 0, 0, 0); 中添加一小时
  • 好问题,我没有在我的应用程序中检查过这种行为。明天早上会做的很快......

标签: c# jquery date fullcalendar


【解决方案1】:

您是否生活在世界上实行夏令时的地方?这可以解释为什么你的日期提前一个小时。尝试跳到 12 月并添加一些日期。他们还提前一个小时吗?

【讨论】:

  • @meep:我认为最好的办法是在服务器端代码中修改事件的开始和结束时间。不幸的是,我不是 C# 专家,所以我不知道该怎么做。 ://
【解决方案2】:

我刚刚从我的开发箱转移到 Amazon EC2 进行暂存时遇到了类似的问题...我的 Amazon 实例上的区域设置设置为美国西海岸,而不是我的时区(澳大利亚悉尼)。

更改此设置,然后更新内置帐户(网络实例等)的区域设置解决了我的日期呈现不正确的问题。

【讨论】:

    【解决方案3】:

    我也遇到过类似的问题,解决方法是:

    function _changeToLocal (localDate) {
          return new Date( localDate.getFullYear(), localDate.getMonth(), localDate.getDate(), 
             localDate.getHours(), localDate.getMinutes() + localDate.getTimezoneOffset());
    }
    

    假设这是一个与时区相关的问题。 君特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2021-03-16
      相关资源
      最近更新 更多