2 回答

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
Unix時(shí)間值的數(shù)量秒,因?yàn)闀r(shí)代,不會有像你十進(jìn)制1556214336.316
如果我參加1556214336
(不.316
),并把它放在一個(gè)轉(zhuǎn)換器,我得到的輸出04/25/2019 @ 5:45pm (UTC)
是不是1970年-似乎一個(gè)精確的時(shí)間(我的避風(fēng)港尚未經(jīng)過獨(dú)立驗(yàn)證)
,那么,看來您1556214336.316
就是秒。自紀(jì)元以來的毫秒數(shù)。
Javascript使用相同的紀(jì)元,但是是自紀(jì)元以來的毫秒數(shù),而不是秒數(shù),因此,如果我對所獲得的時(shí)間是正確的,則應(yīng)該能夠刪除小數(shù)點(diǎn)后的位,并使用所得的數(shù)字字符串。確實(shí)
var d = new Date(1556214336316);
console.log('Date is: ' + d.toUTCString());
產(chǎn)生
Date is: Thu, 25 Apr 2019 17:45:36 GMT
與轉(zhuǎn)換器的“ 5:45 pm”時(shí)間完全匹配
var d = new Date(1556214336316);
console.log('Date is: ' + d.toUTCString());
假設(shè)您的值1556214336.316是一個(gè)從Web API返回的String,則可以刪除小數(shù),并且可以像這樣完成轉(zhuǎn)換(請注意,您不必繼續(xù)創(chuàng)建新Date對象):
convertDateToTimerFormat = (time) => {
const d = new Date( Number(time.replace(/\./g, '')) );
return `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;
};
console.log( 'time: ' + convertDateToTimerFormat('1556214336.316') );
根據(jù)您的使用,您可能想使用getUTCHours()
等。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
我對優(yōu)雅并不了解,但這會以以下h:mm:ss格式計(jì)算并顯示過期時(shí)間:
console.log(convertDateToTimerFormat(1556215236.316));
function convertDateToTimerFormat(time){
// Converts `time` to milliseconds to make a JS Date object, then back to seconds
const expiredSeconds = Math.floor(new Date()/1000) - Math.floor(new Date(time * 1000)/1000);
// Calculates component values
const hours = Math.floor(expiredSeconds / 3600), //3600 seconds in an hour
minutes = Math.floor(expiredSeconds % 3600 / 60),
seconds = expiredSeconds % 3600 % 60;
// Adds initial zeroes if needed
if (minutes < 10) { minutes = "0" + minutes; }
if (seconds < 10) { seconds = "0" + seconds; }
// Returns a formatted string
return `${hours}:${minutes}:${seconds}`;
}
添加回答
舉報(bào)