2011-12-31 2 views
3

Я пробовал var dateHeaders = HttpContext.Current.Request.Headers["Date"], но он содержит null, очевидно, что такого ключа нет.Поиск временной зоны в HttpRequest с сервера

Может ли кто-нибудь сказать мне, где еще можно найти временную зону текущего клиента?

Ссылка: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

enter image description here

Я хочу, чтобы разобрать DATETIME в следующем формате:

Sun Nov 14 43745 00:00:00 GMT + 0200 (Иерусалим Standard Time)

btw, что такое '43745' часть?

+0

Вы можете попробовать найти часовой пояс по IP, определенно возможно, но я точно не знаю, как это сделать. – Ryan

+1

Если это действительно доступно, вы получите дату в UTC. Вы это уже знаете. Святой Грааль для серверов, исключительно работающий в UTC и только конвертирующий в локальное время на конечной точке, является единственным хорошим решением. –

ответ

10

Заголовок даты не является тем, который отправляется в стандартных HTTP-запросах. Я просто проверил быструю проверку с помощью скрипача с использованием IE и Firefox и не видел заголовка даты, отправленного по любым запросам.

Лучшее, что вы можете сделать на сервере, - это получить культуру пользователя, но это поможет только в формате даты, а не в часовом поясе.

Однако вы можете получить информацию из javascript, используя getTimezoneOffset. Например:

var timeNow = new Date(); 
var timezone = timeNow.getTimezoneOffset()/60 * (-1); 

Отличное описание here.

+0

делает этот день честности сбережения? – Bhavin

Смежные вопросы