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(小时);