1 回答

TA貢獻(xiàn)1836條經(jīng)驗 獲得超13個贊
從你的評論:
LISK Coin 的 API 正在返回這些值。
這有幫助。雖然在 LISK 的文檔中并不清楚,但在 Reddit 的 LISK 論壇上進(jìn)行了一些搜索,發(fā)現(xiàn)了這篇文章,其中說:
應(yīng)用鏈中的時間戳是應(yīng)用鏈創(chuàng)世塊創(chuàng)建以來的秒數(shù)。Lisk 創(chuàng)世區(qū)塊創(chuàng)建于 2016 年 5 月 24 日。
然后它繼續(xù)顯示精確的創(chuàng)世日期2016-05-24T17:00:00.000Z (UTC)。
因此,我們可以這樣做:
var dt = new Date("2016-05-24T17:00:00.000Z"); // start with the LISK genesis date
dt.setTime(dt.getTime() + (2346273 * 1000)); // add your timestamp * 1000 (seconds to ms)
您現(xiàn)在有一個Date正確表示該時間點的對象。如果您調(diào)用.toString()它,它將使用計算機(jī)的本地時區(qū)來生成輸出字符串。
對我來說,在美國太平洋時區(qū):
dt.toString()
// "Mon Jun 20 2016 13:44:33 GMT-0700 (Pacific Daylight Time)"
如果我將時區(qū)更改為印度,那么我將獲得您提供的日期和時間:
dt.toString()
// "Tue Jun 21 2016 02:14:33 GMT+0530 (India Standard Time)"
通過直接提供印度的區(qū)域設(shè)置代碼和時區(qū) ID,我還可以在不更改系統(tǒng)時區(qū)的情況下以更緊湊的格式獲得此信息:
dt.toLocaleString('en-IN', {timeZone: 'Asia/Kolkata'})
// "21/6/2016, 2:14:33 am"
或者,如果您想要 ISO 8601 格式的確切 UTC 時間戳,則
dt.toISOString()
// "2016-06-20T20:44:33.000Z"
另一件需要注意的事情 - 您鏈接到的文檔中沒有提到這個創(chuàng)世時間戳。在那些文檔中,它說這個值是一個常規(guī)的 Unix 時間戳。Unix 時間戳基于1970-01-01T00:00:00.000Z,而不是基于2016-05-24T17:00:00.000Z。因此,要么他們的文檔是錯誤的,要么他們指的是比您使用的文檔更新的內(nèi)容。
添加回答
舉報