.NET、PHP、MySql、JS中的时间戳你每次是手写还是复制?这篇文章让你一次性搞懂

时间:2022-02-25 16:04:17

什么是时间戳(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/

格林尼治(格林威治)时间是什么?下图是:英国伦敦格林尼治天文台

答:世界时即格林尼治平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式。简单点就是国际标准时间

.NET、PHP、MySql、JS中的时间戳你每次是手写还是复制?这篇文章让你一次性搞懂

北京时间与格林威治时间有什么不一样吗?

因为北京处于国际时区划分中的东八区,同格林威治时间(世界时)整整相差8小时(即北京时间=世界时+8小时),故命名为“北京时间”。

.NET中的时间戳,长度是:10位

//需要自己写函数生成时间戳,ts.TotalSeconds返回的是精确到毫秒的时间戳,我们用ConvertTo.Int64将精确到毫秒的时间戳转成精确到秒
public long GetTimeStamp() {
TimeSpan ts = DateTime.Now - new DateTime(, , , , , );
return Convert.ToInt64(ts.TotalSeconds);
}
//根据北京时间进行生成的时间戳,将小时处:+8个小时即可
public long GetTimeStamp() {
TimeSpan ts = DateTime.Now - new DateTime(, , , 8, , );
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())

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