.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())

 

其他语言的时间戳由于我没有学过其他语言所以就不会啦,如果你会留言回复。

posted on 2019-04-03 10:46  托尔斯泰NET  阅读(817)  评论(3编辑  收藏  举报