php?日期時間處理函數(shù)小結
在php中日期時間處理函數(shù)常用的有date(),time(),strtotime()這三個函數(shù)了,下面我來給大家簡單的介紹一下這個函數(shù)在php日期時間中處理的一些實例吧.
php 時間一般都采用大整數(shù)的是形式存儲和調用,time() 函數(shù)返回當前時間的 Unix 時間戳.
定義和用法
time() 函數(shù)返回當前時間的 Unix 時間戳。
語法:time(void)
參數(shù) 描述
void 可選.
說明:返回自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當前時間的秒數(shù).
例,代碼如下:
<?php $t=time(); $nextWeek = time() + (7 * 24 * 60 * 60); // 7 days; 24 hours; 60 mins; 60secs //開源代碼phpfensi.com echo $t; echo $nextWeek; ?>
定義和用法:strtotime() 函數(shù)將任何英文文本的日期時間描述解析為 Unix 時間戳.
語法:strtotime(time,now)
strtotime(time,now) 函數(shù)將任何英文文本的日期時間描述解析為 Unix 時間戳,代碼如下:
<?php echo(strtotime("now")); echo(strtotime("3 October 2005")); echo(strtotime("+5 hours")); echo(strtotime("+1 week")); echo(strtotime("+1 week 3 days 7 hours 5 seconds")); echo(strtotime("next Monday")); //開源代碼phpfensi.com echo(strtotime("last Sunday")); ?>
date(format,timestamp)函數(shù)可把時間戳格式化為可讀性更好的日期和時間.
d - 月中的天 (01-31)
m - 當前月,以數(shù)字計 (01-12)
Y - 當前的年(四位數(shù))
代碼如下:
<?php echo date("Y/m/d"); echo "<br />"; echo date("Y.m.d"); echo "<br />"; echo date("Y-m-d"); echo date('Y年m月d日',time()); ?>
理解上面三個函數(shù),就可以很好地在php中操作日期了.
date()函數(shù):用函式 date() 實現(xiàn)
顯示的格式:年-月-日 小時:分鐘:秒
相關時間參數(shù):
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 幾日,二位數(shù)字,若不足二位則前面補零; 如: "01" 至 "31"
D - 星期幾,三個英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小時制的小時; 如: "01" 至 "12"
H - 24 小時制的小時; 如: "00" 至 "23"
g - 12 小時制的小時,不足二位不補零; 如: "1" 至 12"
G - 24 小時制的小時,不足二位不補零; 如: "0" 至 "23"
i - 分鐘; 如: "00" 至 "59"
j - 幾日,二位數(shù)字,若不足二位不補零; 如: "1" 至 "31"
l - 星期幾,英文全名; 如: "Friday"
m - 月份,二位數(shù)字,若不足二位則在前面補零; 如: "01" 至 "12"
n - 月份,二位數(shù)字,若不足二位則不補零; 如: "1" 至 "12"
M - 月份,三個英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序數(shù),二個英文字母; 如: "th","nd"
t - 指定月份的天數(shù); 如: "28" 至 "31"
U - 總秒數(shù)
w - 數(shù)字型的星期幾,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位數(shù)字; 如: "1999"
y - 年,二位數(shù)字; 如: "99"
z - 一年中的第幾天; 如: "0" 至 "365"
php 計算小時數(shù)并化整為零
/* Author: 楊宇 yangyu@sina.cn */ //參數(shù)$hours_min為數(shù)組,數(shù)組的格式為1:10,返回為1小時 /* 例如: $hours_min[0] = '1:10'; $hours_min[1] = '2:30'; echo hours_sum($hours_min); 輸入為4,也就是合計4小時 */ function hours_sum($hours_min){ if (!is_array($hours_min)) return false; $tmp_arr = array(); foreach ($hours_min as $v){ $tmp_arr = explode(':',$v); $hour[] = $tmp_arr[0]; $min[] = $tmp_arr[1]; } $hours = array_sum($hour); $mins = array_sum($min); $mins = $mins >= 10 ? str_pad($mins, 2, 0, STR_PAD_RIGHT) : $mins; $hours += floor($mins/60); $hours += $mins%60 >= 30 ? 1 : 0; return $hours; }
將日期轉化為星期
/* Author: 楊宇 <yangyu@sina.cn> */ //輸入的$data參數(shù)為,yy/mm/dd 或者 yy-mm-dd,返回星期幾 function getWeekDay($date) { $date = str_replace('/','-',$date); $dateArr = explode("-", $date); return date("N", mktime(0,0,0,$dateArr[1],$dateArr[2],$dateArr[0])); } [/code] PHP將秒轉化成小時和分(格式為 ** 小時 ** 分) [code] /* Author: 楊宇 <yangyu@sina.cn> */ //將秒(非時間戳)轉化成 ** 小時 ** 分 function sec2time($sec){ $sec = round($sec/60); if ($sec >= 60){ $hour = floor($sec/60); $min = $sec%60; $res = $hour.' 小時 '; $min != 0 && $res .= $min.' 分'; }else{ $res = $sec.' 分鐘'; } return $res; }
在開發(fā)中會遇到獲取兩個日期之間的差值,獲取每天的日期格式等等,針對這和問題給出對應的函數(shù)進行處理
dateMonths()計算出兩個日期之間的月份
/** * 計算出兩個日期之間的月份 * @author 微云科技 ROVAST * @param [type] $start_date [開始日期,如2014-03] * @param [type] $end_date [結束日期,如2015-12] * @param string $explode [年份和月份之間分隔符,此例為 - ] * @param boolean $addOne [算取完之后最后是否加一月,用于算取時間戳用] * @return [type] [返回是兩個月份之間所有月份字符串] */ function dateMonths($start_date,$end_date,$explode='-',$addOne=false){ //判斷兩個時間是不是需要調換順序 $start_int = strtotime($start_date); $end_int = strtotime($end_date); if($start_int > $end_int){ $tmp = $start_date; $start_date = $end_date; $end_date = $tmp; } //結束時間月份+1,如果是13則為新年的一月份 $start_arr = explode($explode,$start_date); $start_year = intval($start_arr[0]); $start_month = intval($start_arr[1]); $end_arr = explode($explode,$end_date); $end_year = intval($end_arr[0]); $end_month = intval($end_arr[1]); $data = array(); $data[] = $start_date; $tmp_month = $start_month; $tmp_year = $start_year; //如果起止不相等,一直循環(huán) while (!(($tmp_month == $end_month) && ($tmp_year == $end_year))) { $tmp_month ++; //超過十二月份,到新年的一月份 if($tmp_month > 12){ $tmp_month = 1; $tmp_year++; } $data[] = $tmp_year.$explode.str_pad($tmp_month,2,'0',STR_PAD_LEFT); } if($addOne == true){ $tmp_month ++; //超過十二月份,到新年的一月份 if($tmp_month > 12){ $tmp_month = 1; $tmp_year++; } $data[] = $tmp_year.$explode.str_pad($tmp_month,2,'0',STR_PAD_LEFT); } return $data; }
dateMonthsSections()計算出兩個日期之間的月份區(qū)間
/** * 計算出兩個日期之間的月份區(qū)間 * @author 微云科技 ROVAST * @param [type] $start_date [開始日期,如2014-03] * @param [type] $end_date [結束日期,如2015-12] * @param string $explode [年份和月份之間分隔符,此例為 - ] * @param boolean $addOne [算取完之后最后是否加一月,用于算取時間戳用] * @return [type] [返回是兩個月份之間所有月份字符串] */ function dateMonthsSections($start_date, $end_date, $explode='-', $addOne=false){ $data = dateMonths($start_date,$end_date,$explode,$addOne); $length = sizeof($data); $res = array(); foreach ($data as $key => $value) { if($key < ($length-1)){ $date1 = $value; $date2 = $data[$key + 1]; $res[$key][0] = $date1; $res[$key][1] = $date2; } } return $res; }
獲取當月天數(shù) get_day()
/** * 獲取當月天數(shù) * @param $date * @param $rtype 1天數(shù) 2具體日期數(shù)組 * @return */ function get_day( $date ,$rtype = '1') { $tem = explode('-' , $date); //切割日期 得到年份和月份 $year = $tem['0']; $month = $tem['1']; if( in_array($month , array( '1' , '3' , '5' , '7' , '8' , '01' , '03' , '05' , '07' , '08' , '10' , '12'))) { // $text = $year.'年的'.$month.'月有31天'; $text = '31'; } elseif( $month == 2 ) { if ( $year%400 == 0 || ($year%4 == 0 && $year%100 !== 0) ) //判斷是否是閏年 { // $text = $year.'年的'.$month.'月有29天'; $text = '29'; } else{ // $text = $year.'年的'.$month.'月有28天'; $text = '28'; } } else{ // $text = $year.'年的'.$month.'月有30天'; $text = '30'; } if ($rtype == '2') { for ($i = 1; $i <= $text ; $i ++ ) { $r[] = $year."-".$month."-".$i; } } else { $r = $text; } return $r; }
到此這篇關于php 日期時間處理函數(shù)小結的文章就介紹到這了,更多相關javascript 計算小時數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
php中json_encode處理gbk與gb2312中文亂碼問題的解決方法
這篇文章主要介紹了php中json_encode處理gbk與gb2312中文亂碼問題的解決方法,需要的朋友可以參考下2014-07-07PHP讀取配置文件類實例(可讀取ini,yaml,xml等)
這篇文章主要介紹了PHP讀取配置文件類,可讀取ini,yaml,xml等配置文件,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07CI框架中site_url()和base_url()的區(qū)別
這篇文章主要介紹了CI框架中site_url()和base_url()的區(qū)別,需要的朋友可以參考下2015-01-01