美文网首页程序员
php中时间戳等相关小概念笔记

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

作者: 左神话 | 来源:发表于2017-02-23 17:06 被阅读1081次

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

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

格式如下:
$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;
    }

相关文章

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

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

  • mysql中时间戳转换

    mysql中时间戳转换: PHP中时间戳转换:

  • php中时间戳和时间日期的转化

    php中时间戳和时间日期的转化 php中将对应的时间转化为时间戳的方法: php中将对应的时间戳转化为时间的方法:...

  • 日期和时间

    PHP日期和时间之取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间...

  • 时间整合

    PHP时间戳和日期相互转换在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳...

  • IOS NSDate时间戳字符串转换

    首先我们大致理解一下 IOS中时间戳相关的概念: NSDate这块可以分为四个部分去理解:时间戳NSTimeInt...

  • PHP反射与接口

    反射 1、概念 反射指在PHP运行状态中,扩展分析PHP程序,导出或提取出相关类、方法、属性、参数等的详细信息,包...

  • PHP--【日期函数】--mktime()

    本系列笔记主要是回顾了一下PHP中和日期操作相关的函数 作用 取得指定日期的时间戳 语法 说明 根据给出的参数返回...

  • php常用方法

    php中处理字符串的相关方法 将日期时间字符串转化为整形(时间戳)strtotime() 函数将任何英文文本的日期...

  • 11.1.1 PHP中应用日期和时间1

    11.1.1 PHP中应用日期和时间1 UNIX时间戳 Unix 时间戳 : 自从 Unix 纪元(格林威治时间 ...

网友评论

    本文标题:php中时间戳等相关小概念笔记

    本文链接:https://www.haomeiwen.com/subject/ahmbwttx.html