我有一個顯示對象數據的頁面。我正在加載對象服務器端,並通過與json的AJAX調用傳遞結果。有一個日期屬性是對象的一部分。出於某種原因,日期正在改變。它看起來好像試圖考慮我所處的時區,並從日期中減去4小時(我在美國東部時間,與格林威治標準時間差-4)。使用JSON傳遞日期時更改爲本地時間
當我單擊消息的「顯示」按鈕時,它會進行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(下午2:00)。生產時,服務器時間設置爲GMT(下午6:00)。
所以如果我試圖顯示「09/01/2010 09:00 AM」,它將在我的本地環境中正確顯示,但是在生產中顯示爲「09/01/2010 05:00 AM」 。我不確定它爲什麼這樣做。
幾乎沒有JSON的經驗,爲什麼你會回答Json問題?只是增加了噪音。 – 2012-07-06 22:02:13
@SeanHaddy我也回答了我的理論。這個「噪音」是唯一的答案,並被標記爲選擇的答案。你是否只是隨意回答批評免費幫助?我是因爲C#標記而來到這裏的。 – 2012-07-07 07:11:45