淘宝京东等厂商的时间戳为什么要用这种格式yyyy-MM-ddHH:mm:ss?

TIGERB
  • 9.5k

淘宝京东等厂商的时间戳为什么要用这种格式yyyy-MM-ddHH:mm:ss?

主要是体现在:请求接口传的时间戳是要求这个格式,不知道用什么数据库

回复
阅读 4k
5 个回答
✓ 已被采纳

时间戳(timestamp)字段类型(MySQL)选择:
选择1(推荐):
unsigned int(10) 4294967295 (4个字节32位无符号整型 2^32-1)
echo date('Y-m-d H:i:s', 4294967295);
2106-02-07 14:28:15
可见int(10)字段无法存储这个时间后的时间戳.
这时可以用8个字节的bigint(20),保证能够存储地球有生之年的时间戳:
unsigned bigint(20) 18446744073709551615 (8个字节64位无符号整型 2^64-1)
echo date('Y-m-d H:i:s', 18446744073709551615);
注意,32位MySQL可以用8个字节的bigint类型来存储64位整数.
选择2:
timestamp: 时间戳,范围从 1970-01-01 00:00:01 UTC 到 2038-01-09 03:14:07 UTC,存储为自纪元(1970-01-01 00:00:00 UTC)起的秒数.
echo strtotime('2038-01-19 11:14:07'); 返回 2147483647
选择3:
datetime: 日期与时间,支持的范围从 1000-01-01 00:00:00 到 9999-12-31 23:59:59
WordPress保存文章时间戳的字段类型就是datetime.

格式要求是人为定义的.跟数据库无关,数据存储的都是datetime

这样不好吗,数据库好存,人也易读。

在项目实战中发现,大多会使用Y-m-d H:i:s这样的格式,其实是因为datetime格式比较容易中索引,而以时间戳形式保存的时间不好中,有时候甚至不会中索引

宣传栏