php?日期時間處理函數(shù)小結(jié)
在php中日期時間處理函數(shù)常用的有date(),time(),strtotime()這三個函數(shù)了,下面我來給大家簡單的介紹一下這個函數(shù)在php日期時間中處理的一些實例吧.
php 時間一般都采用大整數(shù)的是形式存儲和調(diào)用,time() 函數(shù)返回當(dāng)前時間的 Unix 時間戳.
定義和用法
time() 函數(shù)返回當(dāng)前時間的 Unix 時間戳。
語法:time(void)
參數(shù) 描述
void 可選.
說明:返回自從 Unix 紀(jì)元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當(dāng)前時間的秒數(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 - 當(dāng)前月,以數(shù)字計 (01-12)
Y - 當(dāng)前的年(四位數(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)
顯示的格式:年-月-日 小時:分鐘:秒
相關(guān)時間參數(shù):
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 幾日,二位數(shù)字,若不足二位則前面補(bǔ)零; 如: "01" 至 "31"
D - 星期幾,三個英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小時制的小時; 如: "01" 至 "12"
H - 24 小時制的小時; 如: "00" 至 "23"
g - 12 小時制的小時,不足二位不補(bǔ)零; 如: "1" 至 12"
G - 24 小時制的小時,不足二位不補(bǔ)零; 如: "0" 至 "23"
i - 分鐘; 如: "00" 至 "59"
j - 幾日,二位數(shù)字,若不足二位不補(bǔ)零; 如: "1" 至 "31"
l - 星期幾,英文全名; 如: "Friday"
m - 月份,二位數(shù)字,若不足二位則在前面補(bǔ)零; 如: "01" 至 "12"
n - 月份,二位數(shù)字,若不足二位則不補(bǔ)零; 如: "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;
}將日期轉(zhuǎn)化為星期
/* 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將秒轉(zhuǎn)化成小時和分(格式為 ** 小時 ** 分)
[code]
/* Author: 楊宇 <yangyu@sina.cn> */
//將秒(非時間戳)轉(zhuǎn)化成 ** 小時 ** 分
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ā)中會遇到獲取兩個日期之間的差值,獲取每天的日期格式等等,針對這和問題給出對應(yīng)的函數(shù)進(jìn)行處理
dateMonths()計算出兩個日期之間的月份
/**
* 計算出兩個日期之間的月份
* @author 微云科技 ROVAST
* @param [type] $start_date [開始日期,如2014-03]
* @param [type] $end_date [結(jié)束日期,如2015-12]
* @param string $explode [年份和月份之間分隔符,此例為 - ]
* @param boolean $addOne [算取完之后最后是否加一月,用于算取時間戳用]
* @return [type] [返回是兩個月份之間所有月份字符串]
*/
function dateMonths($start_date,$end_date,$explode='-',$addOne=false){
//判斷兩個時間是不是需要調(diào)換順序
$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;
}
//結(jié)束時間月份+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 [結(jié)束日期,如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;
}獲取當(dāng)月天數(shù) get_day()
/**
* 獲取當(dāng)月天數(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;
}到此這篇關(guān)于php 日期時間處理函數(shù)小結(jié)的文章就介紹到這了,更多相關(guān)javascript 計算小時數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP WebSocket的技術(shù)解析與使用指南詳解
在這篇文章中我們將深入討論從建立連接、綁定到監(jiān)聽等各方面的操作,并提供易于理解和實踐的指導(dǎo),希望可以幫助大家掌握在PHP中使用WebSocket的關(guān)鍵概念和技術(shù)2024-02-02
PHP取二進(jìn)制文件頭快速判斷文件類型的實現(xiàn)代碼
以下代碼就展示了自己通過讀取文件頭信息來識別文件的真實類型。需要的朋友可以過來參考下2013-08-08
php中json_encode處理gbk與gb2312中文亂碼問題的解決方法
這篇文章主要介紹了php中json_encode處理gbk與gb2312中文亂碼問題的解決方法,需要的朋友可以參考下2014-07-07
PHP讀取配置文件類實例(可讀取ini,yaml,xml等)
這篇文章主要介紹了PHP讀取配置文件類,可讀取ini,yaml,xml等配置文件,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
CI框架中site_url()和base_url()的區(qū)別
這篇文章主要介紹了CI框架中site_url()和base_url()的區(qū)別,需要的朋友可以參考下2015-01-01

