什么是時間戳(chuō)?
答:時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。
為什么時間戳要從1970年01月01日00時00分00秒開始呢?
答:很多編程語言起源於UNIX系統,而UNIX系統認為1970年1月1日0點是時間紀元,所以為偶們常說的UNIX時間戳是以1970年1月1日0點為計時起點時間的。更復雜的解釋可以參考這篇:https://blog.csdn.net/kang19940713/article/details/60466393/
格林尼治(格林威治)時間是什么?下圖是:英國倫敦格林尼治天文台
答:世界時即格林尼治平太陽時間,是指格林尼治所在地的標准時間,也是表示地球自轉速率的一種形式。簡單點就是國際標准時間。
北京時間與格林威治時間有什么不一樣嗎?
因為北京處於國際時區划分中的東八區,同格林威治時間(世界時)整整相差8小時(即北京時間=世界時+8小時),故命名為“北京時間”。
.NET中的時間戳,長度是:10位
//需要自己寫函數生成時間戳,ts.TotalSeconds返回的是精確到毫秒的時間戳,我們用ConvertTo.Int64將精確到毫秒的時間戳轉成精確到秒 public long GetTimeStamp() { TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0); return Convert.ToInt64(ts.TotalSeconds); }
//根據北京時間進行生成的時間戳,將小時處:+8個小時即可
public long GetTimeStamp() { TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 8, 0, 0); return Convert.ToInt64(ts.TotalSeconds); }
JS中的時間戳有三種方式
//JS中的時間戳長度為:13位,是根據電腦或手機系統時區進行計算的 //精確到秒:1554219552000 var timestamp1 = Date.parse(new Date()); //精確到毫秒:1554219571036 var timestamp2 = (new Date()).valueOf(); //精確到毫秒:1554219579657 var timestamp3 = new Date().getTime(); //精確到秒的轉換 var res = timestamp3.toString().substr(0, 10);
PHP中的時間戳,長度是:10位
//PHP中的時間戳精確到秒 echo time();
//輸出:1554219892
MySql中的時間戳,長度是:10位
#獲取最新時間戳 SELECT UNIX_TIMESTAMP(); #指定一個固定時間獲取時間戳 SELECT UNIX_TIMESTAMP('2019-04-03 10:16:24'); #時間戳轉成:年月日時分秒格式 SELECT FROM_UNIXTIME(UNIX_TIMESTAMP())
其他語言的時間戳由於我沒有學過其他語言所以就不會啦,如果你會留言回復。