Вопрос о TimeZones и плагине Jquery CountDown - PullRequest
0 голосов
/ 16 сентября 2009

Я хочу использовать этот плагин: http://keith -wood.name / countdown.html

но мне нужно использовать функцию TimeZone. Итак, я смотрел на пример кода

$('#sydneyCountdown').countdown({until: liftoffTime, timezone: +10});

, поэтому +10 - это номер TimeOffSet. Теперь мне нужно сделать так, чтобы я мог сделать запрос получения jquery и получить TimeOffSet с сервера (который получает время пользователя из БД и делает TimeOffSet).

Однако кажется, что C # TimeOffSet возвращает что-то вроде этого "+02: 00" (не это просто случайная зона, не такая же, как в примере jquery).

Так что кажется, что все C # TimeOffSet следуют этому формату +/- xx: xx

Так что я не понимаю, почему плагин jquery имеет только 2 цифры, а другой - 4 цифры.

Могу ли я узнать от safley последние 2 цифры в 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;

Так что просто конвертировать часы в минуты, а затем добавить к ним минуты?

Редактировать - с offSetTime

   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;

Проблема, хотя OffSet дает мне только номер, а не знак +/-. Так что я не знаю, как его получить.

Редактировать -

Не берите в голову, это имеет смысл, что они не добавляют знак плюс, так как я только что тестировал тот, у которого был бы знак "-", и он показан.

1 Ответ

1 голос
/ 16 сентября 2009

Плагин говорит:

обслуживать часовые пояса с часовым поясом настройка, которая установлена ​​для цели смещение времени от GMT, либо часы или минуты.

Итак, я думаю, исходя из величины значения часового пояса, он воспринимает его как часы или минуты. Вы должны преобразовать формат <sign><hh>:<mm> в число минут, чтобы учесть часовые пояса, которые не выровнены по часам. Что-то вроде:

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, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...