数据库用到的保存时间的字段,常见的有三种:时间戳、日期时间字段,年月日保存在三个字段。时间戳是最直接有效的方法,保存位数短(只有10位)可以方便的转化为各种所需要的类型;日期时间保存比时间戳复杂;保存在三个字段的做法简直有点奇葩,但是用的人也是不少的,尤其初学者,一般不建议采用。
PHP的时间戳保存的位数是10位,java的时间戳保存的位数是12,两者的区别是前者精确到秒。所以采用不同语言的人稍微要注意一下不同之处。
PHP常见的关于日期时间的函数有:
当前时间戳 time();
当前的日期date('Y-m-d H:i:s',time());
一段时间前时间戳 strtotime(‘-7 day’); //括号里的条件是 -7 day,-3 month,-2 year 等
同理一段时间前的日期 date('Y-m-d',strtotime('-7 day'));
常见的搜索语句:
FROM_UNIXTIME 将时间戳转换为日期时间
UNIX_TIMESTAMP 将日期时间格式转换为时间戳
select('tbl_front_user.id','username','logo','tbl_user_edit_com_basic_log.created_at','tbl_user_edit_com_basic_log.model_id',DB::raw('FROM_UNIXTIME(tbl_user_edit_com_basic_log.created_at,"%Y%m%d")as days'))
->selectraw('invse_com_id,UNIX_TIMESTAMP(CONCAT_WS("-", invse_year,invse_month, if (invse_day > 0, invse_day, 1))) as ws_date')