<?php
namespace framework\src\cmd;
use framework\cao as cao;
final class time extends cao {
static protected function _date_( $data = NULL, $format = NULL, $field = NULL ){
if( !isset($format)){
$format = 'Y-m-d H:i:s';
}
if( is_array($data) && isset($field) ){
$count_data = count($data);
for( $i = 0; $i < $count_data; $i ++ ){
if( isset($data[$i][$field]) && is_numeric($data[$i][$field]) ){
$data[$i][$field] = date($format, $data[$i][$field]);
}
}
}else
if( is_numeric($data) ){
$data = date($format, $data);
}
return $data;
}
static protected function _format_( $data = NULL ){
$string='';
$now_time = time();
$difference_time = $now_time-$data;
$difference_day=intval(date("Ymd",$now_time)) - intval(date("Ymd",$data));
$difference_month=intval(date("m",$now_time)) - intval(date("m",$data));
$difference_year=intval(date("Y",$now_time)) - intval(date("Y",$data));
if($difference_time<3){
$string='刚刚';
}else
if($difference_time<60){
$string=$difference_time.'秒前';
}else
if($difference_time<3600){
$string=intval($difference_time/60)."分钟前";
}else
if($difference_time>=3600 && $difference_day==0){
$string=intval($difference_time/3600)."小时前";
}else
if($difference_day==1 && $difference_month==0 && $difference_year==0){
$string="昨天".date("H:i",$data);
}else
if($difference_day==2 && $difference_month==0 && $difference_year==0){
$string="前天".date("H:i",$data);
}else
if($difference_day>2 && $difference_month==0 && $difference_year==0){
$string=$difference_day."天前";
}else
if($difference_month==1 && $difference_year==0){
$string="上个月".date("d日 H:i",$data);
}else
if($difference_month>1 && $difference_year==0){
$string=$difference_month."个月前";
}else
if($difference_year>0){
$string=$difference_year."年前";
}
return $string;
}
static protected function _mktime_($data=NULL, $ymd_delimiter = '-', $his_delimiter = ':'){
if(empty($data)){
return $data;
}
if(!empty($data) && is_string($data)){
$split_array = preg_split('/\s+/i',$data);
$ymd_array = explode($ymd_delimiter, $split_array[0]);
if(!isset($ymd_array[2])){
return $data }
if(empty($split_array[1])){
$his_array[0] = 0 $his_array[1] = 0 $his_array[2] = 0 }else{
$his_array=explode($his_delimiter, $split_array[1]);
}
$data = mktime($his_array[0],$his_array[1],$his_array[2],$ymd_array[1],$ymd_array[2],$ymd_array[0]);
}
return $data;
}
static protected function _day_first_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
return mktime(0, 0, 0, date('m',$data), date('d',$data), date('Y',$data));
}
static protected function _day_end_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
return mktime(23, 59, 59, date('m',$data), date('d',$data), date('Y',$data));
}
static protected function _month_first_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
return mktime(0, 0, 0, date('m',$data), 1, date('Y',$data));
}
static protected function _month_end_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
return mktime(23, 59, 59, date('m',$data), date('t',$data), date('Y',$data));
}
static protected function _week_first_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
$data = $data - ((date('w', $data) == 0 ? 7 : date('w', $data)) - 1) * 24 * 3600;
return mktime(0, 0, 0, date('m',$data), date('d',$data), date('Y',$data));
}
static protected function _week_end_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
$data = $data + (7 - (date('w', $data) == 0 ? 7 : date('w', $data)) ) * 24 * 3600;
return mktime(23, 59, 59, date('m', $data), date('d', $data), date('Y', $data));
}
static protected function _year_first_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
return mktime(0, 0, 0, 1, 1, date('Y', $data));
}
static protected function _year_end_( $data = NULL ){
if( !isset($data) ){
$data = time();
}
return mktime(23, 59, 59, 12, date('t',$data), date('Y',$data));
}
}
?>