簡體   English   中英

使用javascript / jquery從數據庫格式化日期的正確方法

[英]Proper way to format date from database using javascript/jquery

我正在調用包含日期時間數據類型的數據庫。 日期看起來像這樣:

2005-05-23 16:06:00.000

當用戶從列表中選擇某個項目時,我想在表中顯示它。 我調用我的控制器動作,並一直返回Json並將它們放在表中。 問題是日期是完全錯誤的。 顯示的內容是:

/日期(1255470180000)/

返回的日期甚至都不是可解析的(無論如何我都不想這樣做),因此我什至無法獲取數據。 有任何想法嗎?

自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 5th Edition的“ replacer”參數,則可以提供一個將日期格式化為字符串的服務器端並在那里處理的替代器,因為您說不想要解析客戶端的日期(盡管jQuery標記建議我也許已經做到了)。

我最終在控制器操作中格式化了代碼。

我只是使用.ToString()將datetime屬性轉換為字符串,並獲得了所需的結果。

謝謝你們的幫助。

另一種選擇是從控制器操作中返回格式化的字符串。 您甚至可以離開時間戳記,並返回第二個字段為“格式化時間戳記”或類似內容。

var listFromDb = ...
return new Json(listFromDb.Select(itemFromDb => new List { new 
     { Date = itemFromDb.Date, FormattedDate = FormatDate(itemFromDb.Date), ...}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM