這個問題發生在寫C#的時候
我在MSSQL存了一欄資料格式為Timestamp
當取出資料用JsonConvert序列化送到前端後
該資料竟然變成了很詭異的字串
送到前端的資料變成以下的樣子
/Date(1597221690260)/
/Date(1597221197243)/
查了一下資料得知
原來JSON規格中沒有對日期時間的型別去做定義
在 .NET 環境下的日期時間資料在序列化之後會用 /Date(tick)/ 這樣的表示法
讓使用者知道某個欄位的資料是個日期型別
且該欄位就變成字串的型態
要再換回日期型態
可以使用以下方法
---------------------------------------------------------------
var datetime = data.substring(6, data.length - 2)
new Date(parseInt(datetime, 10))
---------------------------------------------------------------
舉例來說
_item是我前端接收到json後parse成的物件
其中一個欄位叫做update_time
而_item.update_time顯示的資料為 /Date(1597221690260)/
首先先把該字串處理一下,保留數字的部分
所以substring後的結果為1597221690260
再把該數字字串轉成int
parseInt第二個欄位是指定進位系統的數字
因為預設不一定是10進位,所以要加上10
轉成數字後就可以丟進new Date()裡面轉成日期型態啦