.NET、PHP、MySql、JS中的時間戳你每次是手寫還是復制?這篇文章讓你一次性搞懂


什么是時間戳(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())

 

其他語言的時間戳由於我沒有學過其他語言所以就不會啦,如果你會留言回復。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM