.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())
其他语言的时间戳由于我没有学过其他语言所以就不会啦,如果你会留言回复。