2011-09-27 5 views
4

В настоящее время я храню все даты в DB как даты UTC. Каждое смещение часового пояса пользователя также сохраняется в БД. Когда я получаю дату, он преобразуется обратно в свою локальную дату с использованием этого смещения.UTC DateTime проблемы

Проблема возникает, когда я получаю дату, используя вызов ajax. Я думаю, что дата (которая уже конвертирована с использованием смещения) возвращается как объект Java Date. Затем браузер решает связать мою дату с добавлением смещения часовых поясов компьютеров клиентов к объекту Date. Это приводит к тому, что даты будут на один день опережать то, что они должны быть, если компонент времени составляет более 11,59 утра.

Единственное решение, которое я могу придумать, это передать их как строки, и в этом случае это, конечно, не произойдет. Это laaaast resort для меня, хотя и я хотел бы найти лучшее решение или обходной путь для этой проблемы.

+0

можно ли увидеть некоторые из звонков AJAX? – worc

ответ

2

Ваш браузер не возится с датами, когда браузеры не имеют родной переменной передачи даты. У вас есть что-то еще, что это делает. Как вы отправляете свои даты в ajax? Json? Json будет отправлять только числа или строки. XML будет отправлять только строки.

Что-то преобразует отправленную дату в объект даты javascript, узнайте, что это такое.

+0

Это сторонний компонент, даты представлены в сетке Telerik, которая, вероятно, является преступником. Спасибо за ваш быстрый ответ. Я все еще не уверен, что делать с этой проблемой, и поддержка Telerik обычно бесполезна. –

+0

Можете ли вы отправить даты как временные метки unix (целые числа)? Это всегда UTC и очень легко конвертировать. Вместо «Когда я получаю дату, он преобразуется обратно в свою локальную дату, используя это смещение». сделайте преобразование в последний возможный момент - прямо перед отображением. – Ariel

+0

Я использую asp.Net MVC. Я конвертирую их в контроллер прямо перед возвратом вида. –

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