若以本地時區儲存資料庫,序列化回傳給 javascript時需指定參數,避免轉為 date 物件後被時區再次運算過一次,造成時間跑掉
return Content(JsonConvert.SerializeObject(res, Formatting.Indented, new JsonSerializerSettings { DateTimeZoneHandling = DateTimeZoneHandling.Local }));
說明:
假設值為 2015/12/22 16:00
若不指定DateTimeZoneHandling 為 local,則回傳值為 "2015-12-22T16:00:00",經過 new Date() 轉換後會變成 Wed Dec 23 2015 00:00:00 GMT+0800 (台北標準時間) <= 被認定為 UTC,因為自動轉為 local 所以被加上timezone
若有指定DateTimeZoneHandling 為 local,則回傳值為 "2015-12-22T16:00:00+0800",經過 new Date() 轉換後會變成 Tue Dec 22 2015 16:00:00 GMT+0800 (台北標準時間) <= 被認定為 local,不會再加一次 timezone
javascript 傳遞 json 給 c# 時也須於反序列化時加上參數,例如
var obj=JsonConvert.DeserializeObject<JObject>(data, new JsonSerializerSettings { DateTimeZoneHandling = DateTimeZoneHandling.Local });
訂閱:
張貼留言 (Atom)
vue3-simple-alert 學習心得
官網 顯示提示輸入訊息並於按下確定時檢查是否有輸入,防止未輸入就按確定,且和按取消用不同邏輯處理 VueSimpleAlert.fire({ title: '請輸入原因', input: 'text', showCancel...
-
1. 設定檔案下載儲存位置為 C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache 2. 勾選"下載每個檔案前詢問儲存位置" 3. 針對不要下載的檔案類型於第一...
-
自動設定欄寬 sheet.Cells.AutoFitColumns(3, 20); // 必須設定 min 跟 max 才會正常作用 凍結欄位 sheet.View.FreezePanes(4, 4); 標題列 ws.PrinterSettings.RepeatRo...
-
使用 FreeSpire.XLS ... ep.Save(); using (var workbook = new Workbook()) using (var memStream = new MemoryStream()) { workbook.LoadFromSt...
沒有留言:
張貼留言