php&mysql 日期操作小记

yipeiwu_com6年前Mysql基础
在时间比较查询的时候,int的效率明显更高。祥文见https://www.jb51.net/article/29767.htm
但是在做项目的时候或者直接在数据库查看数据的时候,明显这个int一看头就大,比如我们想
要查看一个用户的注册时间:
select reg_time from t_xx_users where user_id=1;
这时候返回是个int值,不能直观的看到具体的时间,所以这时候就涉及到datetime和int的转化问题,
还有php的date和time也是要涉及到相应的转化。本文略总结一下:
(1)php
int值:
time():是返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
我们想要获得1970 年 1 月 1 日到 2012-2-10的秒数可以通过strtotime()来实现:即:strtotime('2012-2-10');
date值:
string date ( string format [, int timestamp] )
比如:直接date()返回的的实现当前的时间,当然我们可以指定的他的格式:例如date('Y-m-d',strtotime('2012-2-10'));
时间操作:
date('Y-m-d h:i:s',strtotime('+1 week'));
date('Y-m-d h:i:s',strtotime('+5 hours'));
date('Y-m-d h:i:s',strtotime('next Monday));
date('Y-m-d h:i:s',strtotime('last Sunday'));
date('Y-m-d h:i:s',strtotime('+ 1 day',12313223));!!详见 int strtotime ( string time [, int now] )

(2)mysql:
int->datetime
select from_unixtime(int_time) from table;
datetime->int;
select unix_timestamp(date_time) from table;
时间操作:
select dayofweek('2012-2-2');返回一个星期的第几天
select dayofmonth('2012-2-2');返回一月中的第几天
select dayofyear('2012-2-2');返回一年中的第几天
类似函数: month() day() hour() week()......
+几天 date_add(date,interval 2 days);
-几天 date_sub(date,interval 2 days);
时间格式:
date_format(date,format)
select DATE_FORMAT('1997-10-04 22:23:00','%W %M %Y');
其他函数:TIME_TO_SEC() SEC_TO_TIME()...

相关文章

php基于Fleaphp框架实现cvs数据导入MySQL的方法

本文实例讲述了php基于Fleaphp框架实现cvs数据导入MySQL的方法。分享给大家供大家参考,具体如下: <?php /* * To change this t...

mysql建立外键

建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。 外键作用: 使两张表形成关联,外键只能引用外表中的列的值! 指定主键关键字: f...

浅谈php中mysql与mysqli的区别分析

首先两个函数都是用来处理DB 的。首先, mysqli 连接是永久连接,而mysql是非永久连接。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysql...

PHP实现清除MySQL死连接的方法

本文实例讲述了PHP实现清除MySQL死连接的方法。分享给大家供大家参考,具体如下: 连接的情况,主要表现为有过多的Sleep连接,并且Time时间很长,占满了所有的可用连接数,以至于其...

PHP用mysql数据库存储session的代码

隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当于没有了。 隐患二:session在php中默认的是以文件的形式保存在一个临时文件夹里面的,对于一个小型...