php中时间戳等相关小概念笔记

来源:互联网 发布:淘宝发货地址怎么更改 编辑:程序博客网 时间:2024/06/05 04:44

首先说下时间戳吧,因为工作需要,对接接口时要用到各种类型的时间戳,所以抽个时间把这些时间戳整理了下.
如果想看看返回的时间戳对不对,这里有个在线转换工具,可以试试时间戳在线转换

获取当前的时间戳是最简单的

格式如下:
$test = time();
它返回当前的 Unix 时间戳.这是返回的结果1487839316

获取当前日期下的零时零点零分的时间戳

格式如下:
$tmp1 = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m"), date('d'), date("Y")));
这个获取的是当前日期下的零时零点零分的时间.打印如下结果:2017-02-23 00:00:00
但是这里直接使用strtotime获取的并不是这个时间,他实际返回的是2017-02-23 07:00:00.这个结果和mktime(0, 0, 0, date("m"), date('d'), date("Y"))是一样的.
如果想要得到当前日期下的零时零点零分的时间戳,需要这样

$tmp = mktime(0, 0, 0, date("m"), date('d'), date("Y"));$tmp1 = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m"), date('d'), date("Y")));//显示$tmp2 = strtotime($tmp1)-25200;$tmp3 = $tmp - 25200;//等价于$tmp2print_r($tmp3);

获取前一天(后一天)的零时零点零分的时间戳

这个就是对上面的mktime里面的参数进行修改
类似这样$day = date('d') + 1;
顺便说下mktime(时,分,秒,月,日,年),它是取得一个日期的 Unix 时间戳.

获取身份证中出生日期的时间戳

首先说下如何从身份证中获取出生日期,当然,在这之前,要知道身份证有15位的和18位的,所以如果是15位的要转换成18位的,方便计算.
代码如下:

public function getIDCard($idCard) {        // 若是15位,则转换成18位;否则直接返回ID        if (15 == strlen ( $idCard )) {            $W = array (7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1 );            $A = array ("1","0","X","9","8","7","6","5","4","3","2" );            $s = 0;            $idCard18 = substr ( $idCard, 0, 6 ) . "19" . substr ( $idCard, 6 );            $idCard18_len = strlen ( $idCard18 );            for($i = 0; $i < $idCard18_len; $i ++) {                $s = $s + substr ( $idCard18, $i, 1 ) * $W [$i];            }            $idCard18 .= $A [$s % 11];           // print_r($idCard18);exit();            return $idCard18;        } else {            return $idCard;        }    }

然后提取出生日期:

 public function getAgeByID($id)    {        $length = strlen($id);        if(empty($id)){            return "";        }            if ($length == 18){                $date = strtotime(substr($id, 6, 8));                print_r($date);exit();                return $date;            }elseif($length == 15){                $id = $this->getIDCard($id);                $date = strtotime(substr($id, 6, 8));                return $date;            }        }

后面就可以直接使用这个函数了.

json_encode编码有乱码怎么办

json_encode($arr, JSON_UNESCAPED_UNICODE)

返回结果处理成数组

 /*  * 返回参数处理,对象转化为数组  */    public function object_array($obj) {        $_arr = is_object ( $obj ) ? get_object_vars ( $obj ) : $obj;        foreach ( $_arr as $key => $val ) {            $val = (is_array ( $val ) || is_object ( $val )) ? $this->object_array ( $val ) : $val;            $arr [$key] = $val;        }        return $arr;    }
0 0
原创粉丝点击