簡體   English   中英

日期對象Javascript使用毫秒創建錯誤的時間

[英]Date Object Javascript creates wrong time while using milliseconds

我遇到了一個有趣的問題。 我正在編寫一個小型家庭自動化工具,並將設備信息寫入sqlite數據庫。

我還將最后一次檢查保存為字符串'YYYY-MM-DD hh:mm.ms'。

在重新啟動程序時,我從數據庫中讀取了值並將其保存到我的班級中。

所以我從數據庫中讀取了一個帶有時間戳的字符串,稱為lastLck並解析了不同的參數:

var yr1 = parseInt(lastLck.substring(0,4));
var mon1 = parseInt(lastLck.substring(5,7));
var dy1 = parseInt(lastLck.substring(8,10));

var h1 = parseInt(lastLck.substring(11,13));
var m1 = parseInt(lastLck.substring(14,16));
var ms1 = parseInt(lastLck.substring(17,20));

var newDate = new Date(yr1, mon1, dy1, h1, m1, ms1);

但這不會獲得以毫秒為單位的正確日期時間。 我嘗試了兩種設備,總的來說,它會四舍五入:

String from database: ++ Compare ++: 2014-08-05 16:40.86
Dump from new Date Object: ++ Compare ++: 2014-08-05 16:41.0
Dump of parameters: ++ Compare ++: 2014-8-5 16:40.86
Dump of newDate.ToLocaleString() ++ Compare ++: Fri Sep 05 2014 16:41:26 GMT+0200 (CEST)

++ Compare ++: 2014-08-05 16:40.101
++ Compare ++: 2014-08-05 16:41.0
++ Compare ++: 2014-8-5 16:40.101
++ Compare ++: Fri Sep 05 2014 16:41:41 GMT+0200 (CEST)

任何人都可以解釋這種行為,以及如何獲得對象內的確切日期?+

您應該能夠簡單地將Date的字符串解釋傳遞給Date構造函數:

var date = new Date(lastCheck);

MDN日期時間文檔說明得很好。

暫無
暫無

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

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