PHP操作時間戳,以及如何拿到各種時間

工作中經常會遇到php獲取各種時間的需要,現在特此做些總結。首先需要知道的是在php中獲取時間方法是date(),在php中獲取時間戳方法有time()、 strtotime()。下面分別說明。
date()格式爲:date($format, $timestamp),format爲格式、timestamp爲時間戳(可選)。
time()返回當前時間的 Unix 時間戳,沒有參數。
strtotime($time, $now)將任何英文文本的日期時間描述解析爲 Unix時間戳。$time爲必填,規定要解析的時間字符串;$now用來計算返回值的時間戳,如果省略該參數,則使用當前時間。

####date()函數字符串格式中各個字母的含義:
a - “am” 或是 “pm”
A - “AM” 或是 “PM”
d - 幾日,二位數字,若不足二位則前面補零; 如: “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 - 幾日,二位數字,若不足二位不補零; 如: “1” 至 “31”
l - 星期幾,英文全名; 如: “Friday”
m - 月份,二位數字,若不足二位則在前面補零; 如: “01” 至 “12”
n - 月份,二位數字,若不足二位則不補零; 如: “1” 至 “12”
M - 月份,三個英文字母; 如: “Jan”
s - 秒; 如: “00” 至 “59”
S - 字尾加英文序數,二個英文字母; 如: “th”,“nd”
t - 指定月份的天數; 如: “28” 至 “31”
U - 總秒數
w - 數字型的星期幾,如: “0” (星期日) 至 “6” (星期六)
Y - 年,四位數字; 如: “1999”
y - 年,二位數字; 如: “99”
z - 一年中的第幾天; 如: “0” 至 “365”

####strtotime($time)用法舉例:
 

echo strtotime('2012-03-22');輸出結果:1332427715(此處結果爲隨便寫的,僅作說明使用)
echo strtotime(date('Y-d-m'));輸出結果:(結合date(),結果同上)(時間日期轉換爲時間戳)
strtotime()還有個很強大的用法,參數可加入對於數字的操作、年月日周英文字符,示例如下:
echo date('Y-m-d H:i:s',strtotime('+1 day'));輸出結果:2012-03-23 23:30:33(會發現輸出明天此時的時間)
echo date('Y-m-d H:i:s',strtotime('-1 day'));輸出結果:2012-03-21 23:30:33(昨天此時的時間)
echo date('Y-m-d H:i:s',strtotime('+1 week'));輸出結果:2012-03-29 23:30:33(下個星期此時的時間)
echo date('Y-m-d H:i:s',strtotime('next Thursday'));輸出結果:2012-03-29 00:00:00(下個星期四此時的時間)
echo date('Y-m-d H:i:s',strtotime('last Thursday'));輸出結果:2012-03-15 00:00:00(上個星期四此時的時間)

 

####一些常用的格式化時間:

echo "明天凌晨的時間戳:".strtotime(date('Y-m-d',strtotime('+1 day')));
echo"一週後:".date("Y-m-d",strtotime("+1 week"));
echo"一週零兩天四小時兩秒後:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"));
echo"下個星期四:".date("Y-m-d",strtotime("next Thursday"));
echo"上個週一:".date("Y-m-d",strtotime("last Monday"));
echo"一個月前:".date("Y-m-d",strtotime("last month"));
echo"一個月後:".date("Y-m-d",strtotime("+1 month"));
echo"十年後:".date("Y-m-d",strtotime("+10 year"));
//今天開始時間    $beginToday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d'),date('Y')));
//今天結束時間    $endToday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1);
//昨天開始時間    $beginYesterday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')-1,date('Y')));
//昨天結束時間    $endYesterday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d'),date('Y'))-1);
//本週開始時間    $beginThisweek = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")));
//本週結束時間    $endThisweek = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y")));
//上週開始時間    $beginLastweek= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y')));
//上週結束時間    $endLastweek= date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')));
//本月開始時間    $beginThismonth = date("Y-m-d H:i:s",mktime(0,0,0,date('m'),1,date('Y')));
//本月結束時間    $endThismonth = date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('t'),date('Y')));
//上月開始時間    $beginLastmonth = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y")));
 //上月結束時間    $endLastmonth = date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y")));
//本季度開始時間    $season = ceil((date('n'))/3);    
//當前是第幾季度    $beginThisseason = date('Y-m-d H:i:s', mktime(0, 0, 0,$season*3-3+1,1,date('Y')));
//本季度結束時間    $endThisseason = date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y')));
//上季度開始時間    $season1 = ceil((date('n'))/3)-1;
//上季度是第幾季度    $beginLastseason = date('Y-m-d H:i:s', mktime(0, 0, 0,$season1*3-3+1,1,date('Y')));
//上季度結束時間    $endLastseason = date('Y-m-d H:i:s', mktime(23,59,59,$season1*3,date('t',mktime(0, 0 , 0,$season1*3,1,date("Y"))),date('Y')));
//本年開始時間    $beginThisyear=date("Y",time())."-1"."-1";
//本年結束時間    $endThisyear =date("Y",time())."-12"."-31";

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章