我正在調用包含datetime數據類型的數據庫。日期如下:使用javascript/jquery格式化數據庫的正確方法
2005-05-23 16:06:00.000
我想在一個表格中顯示此當用戶從列表中選擇某一個項目。我打電話給我的控制器動作,並將Json的所有時間都放回到桌子上。問題是日期完全錯誤。什麼是顯示的是:
/日期(1255470180000)/
返回的日期是不是連解析的(我不想做反正),所以我甚至無法獲得數據如果我想。有任何想法嗎?
我正在調用包含datetime數據類型的數據庫。日期如下:使用javascript/jquery格式化數據庫的正確方法
2005-05-23 16:06:00.000
我想在一個表格中顯示此當用戶從列表中選擇某一個項目。我打電話給我的控制器動作,並將Json的所有時間都放回到桌子上。問題是日期完全錯誤。什麼是顯示的是:
/日期(1255470180000)/
返回的日期是不是連解析的(我不想做反正),所以我甚至無法獲得數據如果我想。有任何想法嗎?
我結束了在控制器操作中的代碼格式代替。
我只是使用.ToString()將datetime屬性轉換爲字符串並獲得了期望的結果。
感謝您的幫助,雖然傢伙。
從1970年1月1日午夜開始(UTC),您將返回的日期序列化爲一個標記和毫秒數。如果您將數字部分隔離,請將其轉換爲數字,然後將其提供給構造函數Date
,您將得到一個實際的日期,然後您可以根據需要對其進行格式化。
var ticks, dt;
// Isolate the numeric portion of the value
ticks = /[0-9]+/.exec(json.dateValue)[0];
// Convert to a number
ticks = parseInt(ticks);
// Convert to a date
dt = new Date(ticks);
或者,如果該服務器上的JSON序列化支持「替代品」參數爲Crockford的和ECMAScript第5版的嗎,你能提供該格式的日期轉換爲字符串服務器端的一個替代品,並處理它那裏,因爲你說過你不想解析客戶端的日期(儘管jQuery標籤對我來說可能是你做的)。
另一種選擇是從控制器操作返回格式化的字符串。你甚至可以留下時間戳,並返回第二個字段作爲「格式化時間戳」或類似的東西。
var listFromDb = ...
return new Json(listFromDb.Select(itemFromDb => new List { new
{ Date = itemFromDb.Date, FormattedDate = FormatDate(itemFromDb.Date), ...}
我相信這是1970年1月1日以來的毫秒數 - 這個時代。 – Tarski 2010-04-15 21:37:13
@Tarski:謝謝,我澄清了。 (在JavaScript中,「tick」有時是「毫秒」的同義詞,雖然當然這不是*如何用於C) – 2010-04-15 21:41:05
感謝您的解決方案。我希望有一種方法可以從控制器操作中返回一個非UTC值。 你給我的解決方案還顯示:週五2005年1月21日10:29:00 GMT-0500(美國東部標準時間),而不是僅僅週五2005年1月21日10:29:00 – Darcy 2010-04-15 21:46:11