專案中的那些事 時間戳 一

2022-09-16 09:39:12 字數 2695 閱讀 5598

一、時間戳

簡單講,unix時間戳就是從1970-01-01開始所經過的秒數,什麼時候獲取時間戳,就是到那個時間點所經歷的秒數。

二、j**ascript獲取時間戳

根據時間戳的定義,可以使用j**ascript中的幾個方法來獲取系統當前的時間戳:

1、gettime()

w3c school的解釋如下:

根據上面的定義,我們可以獲取系統當前的時間戳:

var timestamp1 = new

date().gettime();

console.info(timestamp1);

輸出:1524662952173

根據上面的解釋,parse方法返回的是指定日期和時間到2023年1月1日的毫秒數,所以只要將日期指定為系統當前時間,就能獲取系統當前的時間戳。

var timestamp2 = date.parse(new date());

console.info(timestamp2);

輸出:1524662952000

該方法返回的是date物件的原始值,且和gettime返回相同的值,所以只要date物件為系統當前時間,就能獲取系統當前的時間戳

var timesta*** = (new date()).valueof();

console.info(timesta***);

輸出:1524662952176

以上是獲取系統當前時間的時間戳,如果要獲取指定時間的時間戳,只需要設定指定日期,然後用對應的日期物件進行操作即可,不再贅述。

從上面的結論可以看出,通過parse方法獲取的時間戳後三位都是0,如果用更多的資料測試,都會發現該方法返回的時間戳沒有其他兩種方法精確,

因為其後三位始終是0.

二、將時間戳轉化為日期

上面介紹的是獲取時間戳,也就是日期轉時間戳的方法,再來學習一下時間戳轉日期的方法。

轉成日期的方法也很簡單,只要將時間戳傳給date即可,然後格式化成想要的格式,如yyyy-mm-dd hh:mm:ss

值得注意的一點是,在轉日期之前要先判斷時間戳是否是13位,如果不是13位,需要將不夠的幾位在低位用0代替,

例如:時間戳是1234567891  則在傳給date()之前要轉成1234567891000

/**

* 將unix時間戳轉化成日期格式

*/function timestamp2date(timestamp)

var y = date.getfullyear()+'-';

var m = (date.getmonth()+1 < 10 ? '0'+(date.getmonth()+1) : date.getmonth()+1) + '-';

var d = date.getdate() + ' ';

var h = date.gethours() + ':';

var m = date.getminutes() + ':';

var s = date.getseconds();

return y+m+d+h+m+s;

} var ts = timestamp2date(1234567891);

console.info(ts);

輸出結果:2009-02-14 7:31:31

var ts = timestamp2date(1234567891000);

console.info(ts);

輸出結果:2009-02-14 7:31:31

為了驗證上面的結論,將補0部分去掉,結果如下:

/*

* * 將unix時間戳轉化成日期格式

*/function

timestamp2date(timestamp)

*/var y = date.getfullyear()+'-';

var m = (date.getmonth()+1 < 10 ? '0'+(date.getmonth()+1) : date.getmonth()+1) + '-';

var d = date.getdate() + ' ';

var h = date.gethours() + ':';

var m = date.getminutes() + ':';

var s =date.getseconds();

return y+m+d+h+m+s;

}var ts = timestamp2date(1234567891);

console.info(ts);

輸出結果:1970-01-15 14:56:7

var ts = timestamp2date(1234567891000);

console.info(ts);

輸出結果:2009-02-14 7:31:31

以上就是j**ascript中日期和時間戳的轉化,如有錯誤之處,感謝指正!

專案中的快取那些事兒

在高併發請求時,為何我們頻繁提到快取技術?最直接的原因是,目前磁碟io和網路io相對於記憶體io的成百上千倍的效能劣勢。做個簡單計算,如果我們需要某個資料,該資料從資料庫磁碟讀出來需要0.1s,從交換機傳過來需要0.05s,那麼每個請求完成最少0.15s 當然,事實上磁碟和網路io也沒有這麼慢,這裡...

sql那些事 時間處理的一攬子事

能用sql解決的事,絕不碰程式 為每一條記錄新增create time和update time是非常明智的選擇,分別表示當前記錄第一次新增和最後一次更改的時間戳。如果你不知道sql語句可以自動完成這個事兒,那麼就不可避免要在程式中手動去設定這兩個欄位的值。create time datetime d...

NSDate與時間戳的那點事

對於專案中常常使用的時間來說,通過時間戳的形式進行資料的操作能帶來極大的方便,以下就時間戳的生成和轉換通過demo的形式進行解說 宣告乙個時間型別的變數 獲取當前的時間 以下的第乙個方法不提倡 nsdate now1 nsdate alloc initwithtimeintervalsincenow...