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

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

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

格式如下:
$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;//等价于$tmp2
print_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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值