首先說下時間戳吧,因為工作需要,對接介面時要用到各種型別的時間戳,所以抽個時間把這些時間戳整理了下. 如果想看看返回的時間戳對不對,這裡有個線上轉換工具,可以試試時間戳線上轉換
獲取當前的時間戳是最簡單的
格式如下:
$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;
}
複製程式碼