php時間函數(shù)的靈活使用
question:獲取本月最后一天的當(dāng)前時間
例如:
當(dāng)前時間為2018-05-25 15:48:12
得到時間:2018-05-31 15:48:12
$d = date('d');//沒用上
$days = date('t');//獲取本月的天數(shù)--可以得到最后一天的日期
$date = date('H:i:s');//得到當(dāng)前的時分秒
$lastDayTime = date('Y-m').'-'.$days.' '.$date;//拼接完成當(dāng)月最后一天當(dāng)前時間點
print_r($lastDayTime);
打印結(jié)果:?2018-05-31 15:36:14
question:PHP 取前一天或后一天、一個月時間
date("Y-m-d H:i:s")?//獲得當(dāng)前時間?
$current_date = date(’Y-m-d’,time()); ?//date()格式化時間返回String類型明刷。 ?
//根據(jù)當(dāng)前時間加一周后
$weekLater = date(’Y-m-d’,strtotime("$current_date + 1 week"));
echo $weekLate;
// 2018-05-26 加一天的日期
$tomorrow = date(’Y-m-d’,strtotime("2018-05-26 + 1 day"));
echo $tomorrow; // 2018-05-27
也可以這樣 date("Y-m-d",strtotime("-1 day")) 婴栽;直接獲得前一天時間
$tomorrow = date('Y-m-d',strtotime("2018-05-31 + 1 day"));
echo $tomorrow; // 2018-06-01
(1)打印明天此時的時間戳strtotime("+1 day")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) ?結(jié)果:2018-05-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("+1 day"))
結(jié)果:2018-05-23 09:40:25
(2)打印昨天此時的時間戳strtotime("-1 day")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2018-05-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("-1 day"))
結(jié)果:2018-05-21 09:40:25
(3)打印下個星期此時的時間戳strtotime("+1 week")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2018-05-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("+1 week"))
結(jié)果:2018-05-29 09:40:25
(4)打印上個星期此時的時間戳strtotime("-1 week")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2018-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("-1 week"))
結(jié)果:2018-05-15 09:40:25
(5)打印指定下星期幾的時間戳strtotime("next Thursday")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2018-05-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("next Thursday"))
結(jié)果:2018-05-31 00:00:00
(6)打印指定上星期幾的時間戳strtotime("last Thursday")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2018-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("last Thursday"))
結(jié)果:2018-05-24 00:00:00
1.date()
date_default_timezone_set(PRC);?? /*把時間調(diào)到北京時間,php5默認(rèn)為格林威治標(biāo)準(zhǔn)時間*/
date ()
a:?? "am"或是"pm"?
A:?? "AM"或是"PM"?
d:?? 幾日,兩位數(shù)字辈末,若不足則補(bǔ)零愚争;從"01"至"31"?
D:??? 星期幾,3個英文字母挤聘,如:"Fri"?
F:??? 月份轰枝,英文全名,如:"January"?
h:??? 12小時制的小時组去,從"01"至"12"?
H:??? 24小時制的小時鞍陨,從"00"至"23"?
g:??? 12小時制的小時,不補(bǔ)零从隆;從"1"至"12"?
G:??? 24小時制的小時诚撵,不補(bǔ)零;從"0"至"23"?
j:??? 幾日键闺,不足不被零寿烟;從"1"至"31"?
l:??? 星期幾,英文全名辛燥,如:"Friday"?
m:??? 月份筛武,兩位數(shù)字,從"01"至"12"?
n:??? 月份挎塌,兩位數(shù)字徘六,不補(bǔ)零;從"1"至"12"?
M:??? 月份榴都,3個英文字母待锈;如:"Jan"?
s:?? 秒;從"00"至"59"?
S:??? 字尾加英文序數(shù)缭贡,兩個英文字母,如:"21th"?
t:??? 指定月份的天數(shù)炉擅,從"28"至"31"?
U:??? 總秒數(shù)?
w:??? 數(shù)字型的星期幾辉懒,從"0(星期天)"至"6(星期六)"?
Y:??? 年阳惹,四位數(shù)字?
y:??? 年谍失,兩位數(shù)字?
z: 一年中的第幾天;從"1"至"366"
1莹汤,年-月-日
表示年可以用大寫的Y和小寫y;
表示月可以用大寫F快鱼、大寫M、小寫m和小寫n(分別表示字符和數(shù)字的兩種方式);
表示日可以用小寫d和小寫j纲岭,大寫S表示日期的后綴抹竹。
echo date('Y-m-j');
2007-02-6
echo date('y-n-j');
07-2-6
大寫Y表示年四位數(shù)字,而小寫y表示年的兩位數(shù)字止潮;
小寫m表示月份的數(shù)字(帶前導(dǎo))窃判,而小寫n則表示不帶前導(dǎo)的月份數(shù)字。
echo date('Y-M-j');
2007-Feb-6
echo date('Y-m-d');
2007-02-06
大寫M表示月份的3個縮寫字符喇闸,而小寫m則表示月份的數(shù)字(帶前導(dǎo)0);
沒有大寫的J袄琳,只有小寫j表示月份的日期,無前導(dǎo)o燃乍;若需要月份帶前導(dǎo)則使用小寫d唆樊。
echo date('Y-M-j');
2007-Feb-6
echo date('Y-F-jS');
2007-February-6th
大寫M表示月份的3個縮寫字符,而大寫F表示月份的英文全寫刻蟹。(沒有小寫f)
大寫S表示日期的后綴逗旁,比如“st”、“nd”舆瘪、“rd”和“th”片效,具體看日期數(shù)字為何。
2英古,時:分:秒
默認(rèn)情況下淀衣,PHP解釋顯示的時間為“格林威治標(biāo)準(zhǔn)時間”,與我們本地的時間相差8個小時哺呜。
echo date('g:i:s a');
5:56:57 am
echo date('h:i:s A');
05:56:57 AM
小寫g表示12小時制舌缤,無前導(dǎo)0,而小寫h則表示有前導(dǎo)0的12小時制某残。
當(dāng)使用12小時制時需要表明上下午国撵,小寫a表示小寫的“am”和“pm”,大寫A表示大寫的“AM”和“PM”玻墅。
echo date('G:i:s');
14:02:26
大寫G表示24小時制的小時數(shù)介牙,但是不帶前導(dǎo)的;使用大寫的H表示帶前導(dǎo)的24小時制小時數(shù)
小結(jié):
字母g表示小時不帶前導(dǎo)澳厢,字母h表示小時帶前導(dǎo)环础;
小寫g囚似、h表示12小時制,大寫G线得、H表示24小時制饶唤。
3,閏年贯钩、星期募狂、天
echo date('L');
今年是否閏年:0
echo date('l');
今天是:Tuesday
echo date('D');
今天是:Tue
大寫L表示判斷今年是否閏年,布爾值角雷,為真返回1祸穷,否則為0;
小寫l表示當(dāng)天是星期幾的英文全寫(Tuesday)勺三;
而使用大寫D表示星期幾的3個字符縮寫(Tue)雷滚。
echo date('w');
今天星期:2
echo date('W');
本周是全年中的第 06 周
小寫w表示星期幾,數(shù)字形式表示
大寫W表示一年中的星期數(shù)
echo date('t');
本月是 28 天
echo date('z');
今天是今年的第 36 天
小寫t表示當(dāng)前月份又多少天
小寫z表示今天是本年中第幾天
4吗坚,其他
echo date('T');
UTC
大寫T表示服務(wù)器的時間區(qū)域設(shè)置
echo date('I');
大寫I表示判斷當(dāng)前是否為夏令時祈远,為真返回1,否則為0
echo date('U');
大寫U表示從1970年1月1日到現(xiàn)在的總秒數(shù)刻蚯,就是Unix時間紀(jì)元的UNIX時間戳绊含。
echo date('c');
2007-02-06T14:24:43+00:00
小寫c表示ISO8601日期,日期格式為YYYY-MM-DD炊汹,用字母T來間隔日期和時間躬充,時間格式為HH:MM:SS,時區(qū)使用格林威治標(biāo)準(zhǔn)時間(GMT)的偏差來表示讨便。
echo date('r');
Tue, 06 Feb 2007 14:25:52 +0000
小寫r表示RFC822日期充甚。
5、格式化時間
echo $row["t_time"];??? 將輸出 2008-2-29 12:08:00
echo date("Y-m-d",strtotime($row["t_time"]));?? 將輸出 2008-2-29
注霸褒,由于$row["t_time"]得到的時間已經(jīng)是一個字符串伴找,所以需要用strtotime( 字串轉(zhuǎn)時間戳)轉(zhuǎn)一下,否則輸出1970-01-01的錯誤