Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于时区和Jquery倒计时插件的问题_C#_.net_Asp.net_Javascript_Jquery - Fatal编程技术网

C# 关于时区和Jquery倒计时插件的问题

C# 关于时区和Jquery倒计时插件的问题,c#,.net,asp.net,javascript,jquery,C#,.net,Asp.net,Javascript,Jquery,我希望使用这个插件: 但是我需要使用它的时区特性。所以我在看示例代码 $('#sydneyCountdown').countdown({until: liftoffTime, timezone: +10}); 所以+10是时间偏移量。现在我需要这样做,以便我可以执行jqueryget请求并从服务器获取时间偏移量(从数据库获取用户时间并执行时间偏移量) 然而,C#TimeOffSet似乎返回类似于“+02:00”的内容(这只是一个随机区域,与jquery示例中的区域不同) 所以看起来所有的C#时

我希望使用这个插件:

但是我需要使用它的时区特性。所以我在看示例代码

$('#sydneyCountdown').countdown({until: liftoffTime, timezone: +10});
所以+10是时间偏移量。现在我需要这样做,以便我可以执行jqueryget请求并从服务器获取时间偏移量(从数据库获取用户时间并执行时间偏移量)

然而,C#TimeOffSet似乎返回类似于“+02:00”的内容(这只是一个随机区域,与jquery示例中的区域不同)

所以看起来所有的C#时间偏移都遵循+/-xx:xx格式

所以我不明白为什么jquery插件只有2个数字,而另一个只有4个数字

我能从safley那里知道C#中的最后两位数字以匹配插件格式吗

编辑-这行吗

            // working on how to get offsetTime will be posted soon.
            string time = "-08:30";      
            string[] split = new string[] {":"};
            string[] splited = time.Split(split, StringSplitOptions.RemoveEmptyEntries);
            int hours = Convert.ToInt32(splited[0]);
            int mins = Convert.ToInt32(splited[1]);
            int totalMins = (hours * 60) + mins;
把小时转换成分钟,然后把分钟加进去

编辑-使用偏移时间

   var info = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
    TimeSpan span  = info.BaseUtcOffset;
    string time = Convert.ToString(span);
    string[] split = new string[] {":"};
    string[] splited = time.Split(split, StringSplitOptions.RemoveEmptyEntries);
    int hours = Convert.ToInt32(splited[0]);
    int mins = Convert.ToInt32(splited[1]);
    int totalMins = (hours * 60) + mins;
问题是偏移量只给出了数字,而不是+/-符号。所以我不知道如何得到它

编辑-

没关系,他们不加加号是有道理的,因为我只是测试了一个带“-”号的加号,它会显示出来。

插件说:

配合时区和时区 设置,设置为目标 时间与GMT的偏移量,以 几小时或几分钟

因此,我认为根据时区值的大小,它将其视为小时或分钟。您应该将
格式转换为分钟数,以说明不按小时对齐的时区。比如:

var tz = "-08:30";
var tz_tokens = /([+\-])0?(\d+):(\d+)/.exec(tz);
var tz_minutes = (tz_tokens[1] + 1) * (tz_tokens[2] * 60 + tz_tokens[3]);

// ..., timezone: tz_minutes, ...

有没有人建议更快地将tz字符串转换为分钟?确保你解释了“08”被视为无效的八进制文字。它也有UTC的内容。如果我没有弄错的话,C#TimeZoneInfo使用的是什么?嗯,我甚至不明白这是在做什么。我对javascript不是很在行。我可能也会用C#来完成这一切,然后发送最后的数字。无论如何,我都要做一个ajax请求,所以最好使用C#发送一个最终结果,而不仅仅是一个数字,然后我必须转换以获得所需的任何东西。是的!在C#中转换为分钟会更好!整数总分钟=(小时*60)+分钟;如果小时数为负,这将不起作用。你也必须对分钟使用相同的符号。Try:inttotalmins=(小时*60)+分钟*Math.Sign(小时);