PHP 日期和時(shí)間
PHP date() 函數(shù)用於對(duì)日期或時(shí)間進(jìn)行格式化
?時(shí)間戳記(timestamp),通常是一個(gè)字元序列,唯一地識(shí)別某一刻的時(shí)間
#格式化日期:date()函數(shù)將傳回參數(shù)timestamp按照指定格式而產(chǎn)生的字串。
語(yǔ)法
#date(format, timestamp)
? ? ? ?參數(shù) | ? ? ?說明 |
? ? format | #必需,規(guī)定時(shí)間戳記的格式。 |
? ? timestamp | #可選,規(guī)定時(shí)間戳記。預(yù)設(shè)是當(dāng)前時(shí)間和日期 |
☆ 時(shí)間戳記是一種字元序列,它表示特定事件發(fā)生的時(shí)間和日期
格式字串可以辨識(shí)以下?format?參數(shù)的字串
? ? format 字元 | ##? ?說明 | ? ??#傳回值範(fàn)例 | |||||||||||||||||||||||||||||||||||||||||||||||||||
--- | --- | ||||||||||||||||||||||||||||||||||||||||||||||||||||
月份中的第幾天,有前導(dǎo)零的2 位數(shù)字 | 01?到?31 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
星期中的第幾天,文字表示,3 個(gè)字母 | Mon?到?Sun | ||||||||||||||||||||||||||||||||||||||||||||||||||||
#月份中的第幾天,沒有前導(dǎo)零 | 1?到?31 |
l("L"的小寫字母) | 星期幾,完整的文字格式 | Sunday?到?Saturday |
N | ISO-8601 格式數(shù)字表示的星期中的第幾天(PHP 5.1.0 新加) | 1(表示星期一)到?7(表示星期日) |
S | 每月天數(shù)後面的英文後綴,2 個(gè)字元 | st,nd,rd?或?th??梢院?j?一起用 |
w | 星期中的第幾天,數(shù)字表示 | 0(表示星期日)到?6(表示星期六) |
z | 年中的第幾天 | 0?到?365 |
星期 | --- | #--- |
W | ISO-8601 格式年份中的第幾週,每週從星期一開始(PHP 4.1.0 新加的) | #例如:42(當(dāng)年的第42 週) |
月 | --- | --- |
F | #月份,完整的文字格式,例如January 或March | # January?到?December |
m | 數(shù)字表示的月份,有前導(dǎo)零 | 01?到?12 |
##01?到?12 | M | |
Jan?到?Dec | n | |
1?到?12 | t |
年 | --- | #--- |
L | ||
##是否為閏年 | 如果是閏年為?1,否則為?0 |
時(shí)間 | --- | #--- | |||||||||||||||||||||||||||||||||||||||||||||||||||
a | #小寫的上午與下午 | B | |||||||||||||||||||||||||||||||||||||||||||||||||||
000?到?999 | g | ||||||||||||||||||||||||||||||||||||||||||||||||||||
1?到?12 | # |
G | 小時(shí),24 小時(shí)格式,沒有前導(dǎo)零 | 0?到?23 |
# h | 小時(shí),12 小時(shí)格式,有前導(dǎo)零 | 01?到?12 |
H | #小時(shí),24 小時(shí)格式,有前導(dǎo)零 | 00?到?23 |
i | 有前導(dǎo)零的分鐘數(shù) | 00?到?59> |
s | 秒數(shù),有前導(dǎo)零 | #00?到?59> |
# u | 毫秒(PHP 5.2.2 新加)。要注意的是?date()?函數(shù)總是回傳000000?因?yàn)樗唤邮?integer?參數(shù),而?DateTime::format()?才支援毫秒。 | 範(fàn)例:?654321 |
時(shí)區(qū) | --- | --- |
e | 時(shí)區(qū)識(shí)別(PHP 5.1.0 新加) | #例如: UTC,GMT,Atlantic/Azores |
I | 是否為夏令時(shí)間 | 如果是夏令時(shí)為?1,否則為?0 |
O | 與格林威治時(shí)間相差的小時(shí)數(shù) | 例如:+0200 |
P | 與格林威治時(shí)間(GMT)的差別,小時(shí)與分鐘之間有冒號(hào)分隔(PHP 5.1.3 新加) | 例如:+02:00 |
# T | ||
本機(jī)所在的時(shí)區(qū) | ||
r | RFC 822 格式的日期 | 例如:Thu, 21 Dec 2000 16:01:07 +0200 |
PHP date() 格式化日期
date() 函數(shù)的第一個(gè)必要參數(shù) format 規(guī)定如何格式化日期/時(shí)間。
這裡列出了一些可用的字元:
d - 代表月中的天(01 - 31)
m - 代表月(01 - 12)
Y - 代表年(四位數(shù))
如需了解format 參數(shù)中可用的所有字元列表,請(qǐng)查閱我們的PHP Date 參考手冊(cè),date() 函數(shù)。
可以在字母之間插入其他字符,例如"/"、"." 或"-",這樣就可以增加附加格式了:
實(shí)例
<?php echo date("Y/m/d") . "<br>"; echo date("Y.m.d") . "<br>"; echo date("Y-m-d"); ?>
程式運(yùn)行結(jié)果:
2016/10/09
2016.10.09
2016-10-09
以下是常用時(shí)間的字元:
·???h - 有首位零的12小時(shí)小時(shí)格式
· ? i - 帶有首位零的分鐘
· ? s - 帶有首位零的秒(00 -59)
· ? a - 小寫的午前與午後(am 或pm)
實(shí)例
#下面的範(fàn)例以指定的格式輸出目前時(shí)間:
<?php echo date ("H:i:sa"); ?>程式執(zhí)行結(jié)果:15:53:06pm
#☆ PHP date()函數(shù)會(huì)傳回伺服器目前的時(shí)間/日期
#獲得時(shí)區(qū)
如果從程式碼返回的不是正確的時(shí)間,有可能是因?yàn)槟乃欧魑混镀渌麌?guó)家或被設(shè)定為不同時(shí)區(qū)。
因此,如果您需要基於特定位置的準(zhǔn)確時(shí)間,您可以設(shè)定要使用的時(shí)區(qū)。
下面的範(fàn)例把時(shí)區(qū)設(shè)定為"Asia/Shanghai",然後以指定格式輸出目前時(shí)間:<?php
header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼
date_default_timezone_set("Asia/Shanghai");
echo "當(dāng)前時(shí)間是 " . date("h:i:sa");
?>
程式執(zhí)行結(jié)果:
mktime(hour,minute,second,month,day,year)
下面的例子將使用mktime()函數(shù)中一系列的參數(shù)來建立日期和時(shí)間
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $d=mktime(9, 12, 31, 6, 10, 2016); echo "創(chuàng)建日期是 " . date("Y-m-d h:i:sa", $d); ?>
程式運(yùn)行結(jié)果:
建立日期是2016-06-10 09:12:31am
透過PHP strtotime() 用字串來建立日期
PHP strtotime() 函數(shù)用來把人類可讀取的字串轉(zhuǎn)換為Unix 時(shí)間。
語(yǔ)法
#strtotime(time,now)
?下面的範(fàn)例透過strtotime() 函數(shù)建立日期和時(shí)間:
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $d=strtotime("10:38pm April 15 2016"); echo "創(chuàng)建日期是 " . date("Y-m-d h:i:sa", $d); ?>
程式執(zhí)行結(jié)果:
建立日期是2016-04-15 10:38:00pm
#PHP 在將字串轉(zhuǎn)換為日期這方面非常聰明,所以您能夠使用各種值:
實(shí)例
<?php $d=strtotime("tomorrow"); echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("next Saturday"); echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("+3 Months"); echo date("Y-m-d h:i:sa", $d) . "<br>"; ?>
程式運(yùn)行結(jié)果:
2016-10-10 12 :00:00am
2016-10-15 12:00:00am
2017-01-09 04:01:09pm
#註:strtotime()並不完美,所以請(qǐng)記得檢查放入其中的字串。
實(shí)例
<?php $startdate = strtotime("Saturday"); $enddate = strtotime("+5 weeks",$startdate); while ($startdate < $enddate) { echo date("M d", $startdate),"<br>"; $startdate = strtotime("+1 week", $startdate); } ?>
#程式運(yùn)行結(jié)果:
Oct 15
Oct 22
Oct 29
Nov 05
Nov 12
#實(shí)例
用strtotime()函數(shù)取得英文格式日期時(shí)間字串的時(shí)間戳記
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 echo strtotime("now"),"<br>"; //當(dāng)前時(shí)間的時(shí)間戳 echo "輸出時(shí)間:".date("Y-m-d H:i:s",strtotime("now")),"<br>"; //輸出當(dāng)前時(shí)間 echo strtotime("24 May 2016"),"<br>"; //輸出指點(diǎn)時(shí)間的時(shí)間戳 echo "輸出時(shí)間:".date("Y-m-d H:i:s",strtotime("24 May 2016")),"<br>"; //輸入指定的日期 ?>
程式執(zhí)行結(jié)果:輸出時(shí)間:2016-05-24 00:00:00
# #1476000300
輸出時(shí)間:2016-10-09 16:05:00
1464019200
#實(shí)例
實(shí)作倒數(shù)計(jì)時(shí)的功能
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $time=strtotime(date("Y-m-d H:i:s")); //當(dāng)前的系統(tǒng)時(shí)間 $time1=strtotime("2017-10-1 12:00:00"); //國(guó)慶節(jié)的放假時(shí)間 $time2=strtotime("2017-1-1"); //元旦的放假時(shí)間 $sub=ceil(($time1-$time)/3600); //(60秒*60分)/小時(shí) $sub1=ceil(($time2-$time1)/86400); //(60秒*60分*24小時(shí))/天 echo "離國(guó)慶放假時(shí)間還有 <strong>$sub</strong> 小時(shí)"; echo "<p>"; echo"離元旦放假時(shí)間還有 <strong>$sub1</strong> 天"; ?>程式執(zhí)行結(jié)果:
離國(guó)慶假期時(shí)間還有8564 小時(shí)離元旦放假時(shí)間還有-273 天
完整的PHP Date 參考手冊(cè)
如需查看所有日期函數(shù)的完整參考手冊(cè),請(qǐng)?jiān)煸L我們的?完整的PHP Date 參考手冊(cè)。
###此參考手冊(cè)提供了每個(gè)函數(shù)的簡(jiǎn)要描述和應(yīng)用實(shí)例!
- 課程推薦
- 課件下載
-
初級(jí)PHP 零基礎(chǔ)入門教學(xué)
176451人在看 -
初級(jí)零基礎(chǔ)新手入門PHP教程
27866人在看 -
中級(jí)尚學(xué)堂android開發(fā)零基礎(chǔ)入門影片教學(xué)
34450人在看 -
初級(jí)小甲魚零基礎(chǔ)入門學(xué)習(xí)Python影片教學(xué)
179418人在看 -
初級(jí)CSS 0基礎(chǔ)入門教學(xué)
24674人在看 -
中級(jí)極客學(xué)院jquery零基礎(chǔ)入門影片教程
9551人在看 -
初級(jí)EasyUI基礎(chǔ)入門影片教學(xué)
17653人在看 -
初級(jí)HTML5入門基礎(chǔ)影片教學(xué)
12724人在看 -
初級(jí)Css3入門基礎(chǔ)影片教學(xué)
11017人在看 -
初級(jí)JavaScript入門基礎(chǔ)影片教學(xué)
12342人在看 -
初級(jí)jQuery入門基礎(chǔ)影片教學(xué)
12035人在看 -
初級(jí)Nginx基礎(chǔ)入門影片教學(xué)
25104人在看
看過本課程的同學(xué)也在學(xué)習(xí)
- 簡(jiǎn)單聊聊PHP創(chuàng)業(yè)那點(diǎn)事
- Web前端開發(fā)極速入門
- 大型實(shí)戰(zhàn)天龍八部之開發(fā)Mini版MVC架構(gòu)仿糗事百科網(wǎng)站
- PHP實(shí)戰(zhàn)開發(fā)極速入門: PHP快速創(chuàng)建[小型商業(yè)論壇]
- 登入驗(yàn)證與經(jīng)典留言板
- 電腦網(wǎng)路知識(shí)集合
- 快速入門Node.JS全套完整版
- 最懂你的大前端課:HTML5/CSS3/ES6/NPM/Vue/...【原文】
- 自己動(dòng)手寫 PHP MVC 框架(40節(jié)精講/鉅細(xì)/新人進(jìn)階必看)