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

2021-10-02 07:39:01 字數 4376 閱讀 6502

工作中經常會遇到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";

php 增加時間戳 php如何新增時間戳

php新增時間戳的方法 可以利用mktime 函式來新增。該函式返回乙個日期的unix時間戳,如果錯誤則返回false。具體使用方法如 mktime 0,0,0,date m date d 1,date y mktime 函式返回乙個日期的 unix 時間戳,如果錯誤則返回 false。語法 mkt...

php時間戳存在8小時誤差

當將php時間戳轉化為正常的時間格式一般的操作方法如下 mytime time echo mytime.echo date y m d h i s mytime 這樣做的後果就是前後相差了8個小時,主要原因是php5.1以上時間戳會與實際時間相差8小時。解決辦法如下 1 最簡單的方法就是不要用php...

php時間戳存在8小時誤差

當將php時間戳轉化為正常的時間格式一般的操作方法如下 mytime time echo mytime.echo date y m d h i s mytime 這樣做的後果就是前後相差了8個小時,主要原因是php5.1以上時間戳會與實際時間相差8小時。解決辦法如下 1 最簡單的方法就是不要用php...