У меня есть страница, которая отображает данные из объекта.Я загружаю объектную серверную часть и передаю результаты через AJAX-вызов с помощью json.Существует свойство даты, которое является частью объекта.По какой-то причине дата меняется.Похоже, что он пытается учесть часовой пояс, в котором я нахожусь, и вычитать 4 часа от даты (я нахожусь в EST, -4 отличается от GMT).
Когда я нажимаю «Показать»Кнопка для сообщения, он делает AJAX-вызов для загрузки данных для этого сообщения, а затем отображает его.
Вот мой код JavaScript:
function onBtnDisplayClicked(id)
{
$.ajax({
type: "POST",
url: "<%= Url.Action("GetMessage") %>?id=" + id.toString(),
success: function(data) { bindItem(data); },
dataType: "json",
contentType: "application/json; charset=utf-8"
});
}
function bindItem(data)
{
$("#MessageID").val(data.MessageID);
//Create a Date object from JSON date format - ex: (1230807660000-4000)
var messageDate = new Date(parseInt(data.MessageDate.replace(/\/Date\((\d+)\)\//, '$1')));
//Format date using DateFormat plugin (http://jacwright.com/projects/javascript/date_format)
$("#txtMessageDate").val(messageDate.format('m/d/Y H:i'));
}
А вот мой код на стороне сервера:
public JsonResult GetMessage(int id)
{
Message msg = new Message();
msg.LoadByPrimaryKey(id);
var data = new
{
MessageID = msg.MessageID.Value,
MessageDate = msg.MessageDate.Value
};
return new JsonResult() { Data = data };
}
Это будет работать правильно в моей локальной среде, но не в моей производственной среде.В моем локальном окружении время сервера установлено на EST (14:00).На производстве время сервера установлено на GMT (18:00).
Так что, если я пытаюсь отобразить «09/01/2010 09:00 AM», оно будет правильно отображаться на моем локальномокружающей среды, но на производстве отображается как «01.09.2010 05:00 AM».Я не уверен, почему он это делает.