PHP 日期和時間
PHP date() 函數(shù)用於對日期或時間進(jìn)行格式化
?時間戳記(timestamp),通常是一個字元序列,唯一地識別某一刻的時間
#格式化日期:date()函數(shù)將傳回參數(shù)timestamp按照指定格式而產(chǎn)生的字串。
語法
#date(format, timestamp)
? ? ? ?參數(shù) | ? ? ?說明 |
? ? format | #必需,規(guī)定時間戳記的格式。 |
? ? timestamp | #可選,規(guī)定時間戳記。預(yù)設(shè)是當(dāng)前時間和日期 |
☆ 時間戳記是一種字元序列,它表示特定事件發(fā)生的時間和日期
格式字串可以辨識以下?format?參數(shù)的字串
? ? format 字元 | ##? ?說明 | ? ??#傳回值範(fàn)例 | |||||||||||||||||||||||||||||||||||||||||||||||||||
--- | --- | ||||||||||||||||||||||||||||||||||||||||||||||||||||
月份中的第幾天,有前導(dǎo)零的2 位數(shù)字 | 01?到?31 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
星期中的第幾天,文字表示,3 個字母 | Mon?到?Sun | ||||||||||||||||||||||||||||||||||||||||||||||||||||
#月份中的第幾天,沒有前導(dǎo)零 | 1?到?31 |
l("L"的小寫字母) | 星期幾,完整的文字格式 | Sunday?到?Saturday |
N | ISO-8601 格式數(shù)字表示的星期中的第幾天(PHP 5.1.0 新加) | 1(表示星期一)到?7(表示星期日) |
S | 每月天數(shù)後面的英文後綴,2 個字元 | 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 |
時間 | --- | #--- | |||||||||||||||||||||||||||||||||||||||||||||||||||
a | #小寫的上午與下午 | B | |||||||||||||||||||||||||||||||||||||||||||||||||||
000?到?999 | g | ||||||||||||||||||||||||||||||||||||||||||||||||||||
1?到?12 | # |
G | 小時,24 小時格式,沒有前導(dǎo)零 | 0?到?23 |
# h | 小時,12 小時格式,有前導(dǎo)零 | 01?到?12 |
H | #小時,24 小時格式,有前導(dǎo)零 | 00?到?23 |
i | 有前導(dǎo)零的分鐘數(shù) | 00?到?59> |
s | 秒數(shù),有前導(dǎo)零 | #00?到?59> |
# u | 毫秒(PHP 5.2.2 新加)。要注意的是?date()?函數(shù)總是回傳000000?因為它只接受?integer?參數(shù),而?DateTime::format()?才支援毫秒。 | 範(fàn)例:?654321 |
時區(qū) | --- | --- |
e | 時區(qū)識別(PHP 5.1.0 新加) | #例如: UTC,GMT,Atlantic/Azores |
I | 是否為夏令時間 | 如果是夏令時為?1,否則為?0 |
O | 與格林威治時間相差的小時數(shù) | 例如:+0200 |
P | 與格林威治時間(GMT)的差別,小時與分鐘之間有冒號分隔(PHP 5.1.3 新加) | 例如:+02:00 |
# T | ||
本機(jī)所在的時區(qū) | ||
r | RFC 822 格式的日期 | 例如:Thu, 21 Dec 2000 16:01:07 +0200 |
PHP date() 格式化日期
date() 函數(shù)的第一個必要參數(shù) format 規(guī)定如何格式化日期/時間。
這裡列出了一些可用的字元:
d - 代表月中的天(01 - 31)
m - 代表月(01 - 12)
Y - 代表年(四位數(shù))
如需了解format 參數(shù)中可用的所有字元列表,請查閱我們的PHP Date 參考手冊,date() 函數(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
以下是常用時間的字元:
·???h - 有首位零的12小時小時格式
· ? i - 帶有首位零的分鐘
· ? s - 帶有首位零的秒(00 -59)
· ? a - 小寫的午前與午後(am 或pm)
實例
#下面的範(fàn)例以指定的格式輸出目前時間:
<?php echo date ("H:i:sa"); ?>程式執(zhí)行結(jié)果:15:53:06pm
#☆ PHP date()函數(shù)會傳回伺服器目前的時間/日期
#獲得時區(qū)
如果從程式碼返回的不是正確的時間,有可能是因為您的伺服器位於其他國家或被設(shè)定為不同時區(qū)。
因此,如果您需要基於特定位置的準(zhǔn)確時間,您可以設(shè)定要使用的時區(qū)。
下面的範(fàn)例把時區(qū)設(shè)定為"Asia/Shanghai",然後以指定格式輸出目前時間:<?php
header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼
date_default_timezone_set("Asia/Shanghai");
echo "當(dāng)前時間是 " . date("h:i:sa");
?>
程式執(zhí)行結(jié)果:
mktime(hour,minute,second,month,day,year)
下面的例子將使用mktime()函數(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 時間。
語法
#strtotime(time,now)
?下面的範(fàn)例透過strtotime() 函數(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)換為日期這方面非常聰明,所以您能夠使用各種值:
實例
<?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()並不完美,所以請記得檢查放入其中的字串。
實例
<?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
#實例
用strtotime()函數(shù)取得英文格式日期時間字串的時間戳記
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 echo strtotime("now"),"<br>"; //當(dāng)前時間的時間戳 echo "輸出時間:".date("Y-m-d H:i:s",strtotime("now")),"<br>"; //輸出當(dāng)前時間 echo strtotime("24 May 2016"),"<br>"; //輸出指點時間的時間戳 echo "輸出時間:".date("Y-m-d H:i:s",strtotime("24 May 2016")),"<br>"; //輸入指定的日期 ?>
程式執(zhí)行結(jié)果:輸出時間:2016-05-24 00:00:00
# #1476000300
輸出時間:2016-10-09 16:05:00
1464019200
#實例
實作倒數(shù)計時的功能
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $time=strtotime(date("Y-m-d H:i:s")); //當(dāng)前的系統(tǒng)時間 $time1=strtotime("2017-10-1 12:00:00"); //國慶節(jié)的放假時間 $time2=strtotime("2017-1-1"); //元旦的放假時間 $sub=ceil(($time1-$time)/3600); //(60秒*60分)/小時 $sub1=ceil(($time2-$time1)/86400); //(60秒*60分*24小時)/天 echo "離國慶放假時間還有 <strong>$sub</strong> 小時"; echo "<p>"; echo"離元旦放假時間還有 <strong>$sub1</strong> 天"; ?>程式執(zhí)行結(jié)果:
離國慶假期時間還有8564 小時離元旦放假時間還有-273 天
完整的PHP Date 參考手冊
如需查看所有日期函數(shù)的完整參考手冊,請造訪我們的?完整的PHP Date 參考手冊。
###此參考手冊提供了每個函數(shù)的簡要描述和應(yīng)用實例!
- 課程推薦
- 課件下載
-
初級PHP 零基礎(chǔ)入門教學(xué)
176389人在看 -
初級零基礎(chǔ)新手入門PHP教程
27832人在看 -
中級尚學(xué)堂android開發(fā)零基礎(chǔ)入門影片教學(xué)
34426人在看 -
初級小甲魚零基礎(chǔ)入門學(xué)習(xí)Python影片教學(xué)
179361人在看 -
初級CSS 0基礎(chǔ)入門教學(xué)
24632人在看 -
中級極客學(xué)院jquery零基礎(chǔ)入門影片教程
9528人在看 -
初級EasyUI基礎(chǔ)入門影片教學(xué)
17621人在看 -
初級HTML5入門基礎(chǔ)影片教學(xué)
12694人在看 -
初級Css3入門基礎(chǔ)影片教學(xué)
10992人在看 -
初級JavaScript入門基礎(chǔ)影片教學(xué)
12323人在看 -
初級jQuery入門基礎(chǔ)影片教學(xué)
12024人在看 -
初級Nginx基礎(chǔ)入門影片教學(xué)
25066人在看
看過本課程的同學(xué)也在學(xué)習(xí)