php如何格式化日期時(shí)間-創(chuàng)新互聯(lián)

這篇文章主要介紹php如何格式化日期時(shí)間,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為臨桂企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,臨桂網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

php如何格式化日期時(shí)間

格式化日期時(shí)間

date : 格式化日期時(shí)間

  • 場景

將當(dāng)前日期時(shí)間或者特定日期時(shí)間格式化輸出為特定格式的字符串,常用于人性化展示信息.

  • 說明

返回給定時(shí)間戳格式化后所產(chǎn)生的日期時(shí)間字符串,如果沒有給出時(shí)間戳則默認(rèn)使用本地當(dāng)前時(shí)間.

  • 備注

格式說明返回值示例
Y4 位數(shù)字完整表示的年份2019
y2 位數(shù)字表示的年份19
M三個(gè)字母縮寫表示的月份Jan 到 Dec
m數(shù)字表示的月份,有前導(dǎo)零01 到 12
D星期中的第幾天,文本表示,3個(gè)字母Mon 到 Sun
d月份中的第幾天,有前導(dǎo)零的 2 位數(shù)字01 到 31
H小時(shí),24 小時(shí)格式,有前導(dǎo)零00 到 23
h小時(shí),12 小時(shí)格式,有前導(dǎo)零01 到 12
I是否為夏令時(shí)如果是夏令時(shí)為1 ,否則為 0
i有前導(dǎo)零的分鐘數(shù)00 到 59
S每月天數(shù)后面的英文后綴,2 個(gè)字符st,nd,rd 或者 th ,可以和 j 一起用
s秒數(shù),有前導(dǎo)零00 到 59
  • 常用格式

// 形如 2019-05-31 12:00:00echo date("Y-m-d H:i:s");
// 形如 2019/05/31 12:00:00echo date("Y/m/d H:i:s");
// 形如 2019年05月31日 12時(shí)00分00秒echo date("Y年m月d日 H時(shí)i分s秒");
  • 示例

<?php
// 設(shè)置當(dāng)前時(shí)區(qū)為上海時(shí)區(qū)
date_default_timezone_set("Asia/Shanghai");

// 獲取當(dāng)前時(shí)區(qū) : Asia/Shanghai
echo "當(dāng)前時(shí)區(qū) : ".date_default_timezone_get()."<br/>";

// `Y年m月d日 H時(shí)i分s秒` 格式化當(dāng)前時(shí)間 : 2019年05月30日 22時(shí)32分46秒
echo "當(dāng)前時(shí)間 : ".date("Y年m月d日 H時(shí)i分s秒")."<br/>";

// `Y-m-d H:i:s` 格式化當(dāng)前時(shí)間 : 2019-05-30 22:32:46
echo "當(dāng)前時(shí)間 : ".date("Y-m-d H:i:s")."<br/>";

// `w` 星期中的第幾天,數(shù)字表示: 0(表示星期天)到 6(表示星期六)
switch (date("w")) {    
    case '0':
        $dayStr = "日";        
        break;    
    case '1':
    $dayStr = "一";        
    break;    
  case '2':
    $dayStr = "二";        
    break;    
  case '3':
    $dayStr = "三";      
    break;   
  case '4':
    $dayStr = "四";        
    break;    
  case '5':
    $dayStr = "五";        
    break;    
  case '6':
    $dayStr = "六";        
    break;    
  default:
    $dayStr = "未知";        
    break;
} 
// 2019年05月30日 星期四
echo "當(dāng)前時(shí)間 : ".date("Y年m月d日")." 星期".$dayStr."<br/>";
echo "<hr/>";

// `z` 年份中的第幾天 : 今天是全年的第149天
echo "今天是全年的第".date("z")."天<br/>";

// `W` ISO-8601 格式年份中的第幾周,每周從星期一開始 : 本周是全年的第22周
echo "本周是全年的第".date("W")."周<br/>";

// `t` 指定的月份有幾天 : 本月共有31天
echo "本月共有".date("t")."天<br/>";
?>

日期轉(zhuǎn)化時(shí)間戳

time : 返回當(dāng)前的 Unix 時(shí)間戳

  • 場景

獲取當(dāng)前日期時(shí)間或特定日期時(shí)間的時(shí)間戳,常用于日期時(shí)間之間的相互轉(zhuǎn)換.

  • 說明

返回自從 Unix 紀(jì)元(格林威治時(shí)間 1970年1月1日 00:00:00)到當(dāng)前時(shí)間的秒數(shù).

  • 示例

<?php
// 設(shè)置當(dāng)前時(shí)區(qū)為上海時(shí)區(qū)
date_default_timezone_set("Asia/Shanghai");

// 獲取當(dāng)前時(shí)區(qū)
echo "當(dāng)前時(shí)區(qū) : ".date_default_timezone_get()."<br/>";

// 一周前的日期時(shí)間: 7 days; 24 hours; 60 mins; 60 
secs$preWeek = time() - (7 * 24 * 60 * 60);
echo "現(xiàn)在是".date("Y-m-d H:i:s").",上周是".date("Y-m-d H:i:s",$preWeek)."<br/>";

// 一周后的日期時(shí)間: 7 days; 24 hours; 60 mins; 60 secs
$nextWeek = time() + (7 * 24 * 60 * 60);
echo "現(xiàn)在是".date("Y-m-d H:i:s").",下周是".date("Y-m-d H:i:s",$nextWeek)."<br/>";
?>

microtime : 返回當(dāng)前 Unix 時(shí)間戳和微秒數(shù)

  • 場景

獲取當(dāng)前日期時(shí)間或特定日期時(shí)間的時(shí)間戳,常用于程序運(yùn)行過程打點(diǎn)分析,也可以用于日期時(shí)間之間的互相轉(zhuǎn)換.

  • 說明

當(dāng)前 Unix 時(shí)間戳以及微秒數(shù),本函數(shù)僅在支持 `gettimeofday()`` 系統(tǒng)調(diào)用的操作系統(tǒng)下可用.

  • 示例

<?php

// 設(shè)置當(dāng)前時(shí)區(qū)為上海時(shí)區(qū)
date_default_timezone_set("Asia/Shanghai");

// 獲取當(dāng)前時(shí)區(qū)
cho "當(dāng)前時(shí)區(qū) : ".date_default_timezone_get()."<br/>";

// 當(dāng)前日期時(shí)間戳
echo "當(dāng)前日期時(shí)間戳: ".time()." <--> ".microtime()." <--> ".microtime(TRUE)."<br/>";

?>

mktime : 取得一個(gè)日期的 Unix 時(shí)間戳

  • 場景

獲取給定日期的時(shí)間戳,按照"時(shí)分秒 月日年"格式依次解析,返回時(shí)間戳.

  • 說明

根據(jù)給出的參數(shù)返回 Unix 時(shí)間戳.

  • 備注

格式說明參數(shù)示例
Hhour 小時(shí)數(shù)00 到 23
iminute 分鐘數(shù)00 到 59
ssecond 秒數(shù)00 到 59
nmonth 月份數(shù)01 到 12
jday 天數(shù)01 到 31
Yyear 年份數(shù),可以是兩位或四位數(shù)字0-69 對應(yīng)于 2000-2069 ,70-100 對應(yīng)于 1970-2000

格式: 時(shí)分秒 月日年,支持從右往左依次省略,被省略的值取當(dāng)前時(shí)間的對應(yīng)值.

  • 示例

<?php
// 設(shè)置當(dāng)前時(shí)區(qū)為上海時(shí)區(qū)
date_default_timezone_set("Asia/Shanghai");

// 獲取當(dāng)前時(shí)區(qū)
echo "當(dāng)前時(shí)區(qū) : ".date_default_timezone_get()."<br/>"; 

// 指定日期時(shí)間戳: 時(shí)分秒 月日年 : 1559275200 <--> 2019-05-31 12:00:00
echo "2019年05月31日 12:00:00 的時(shí)間戳: ".mktime(12,0,0,5,31,2019)." <--> ".date("Y-m-d H:i:s", mktime(12,0,0,5,31,2019))."<br/>"; 

// 距離國慶節(jié)還有多少天,單位秒 : 今天是2019-05-31,距離國慶節(jié)還剩122天
$nationalDay = mktime(0,0,0,10,1,2019);
$currentDay = time();
$remainingDay = floor(abs($nationalDay - $currentDay)/(24*3600));
echo "今天是".date("Y-m-d").",距離國慶節(jié)還剩".$remainingDay."天<br/>";
?>

strtotime : 將任何字符串的日期時(shí)間描述解析為 Unix 時(shí)間戳

  • 場景

將英文日期解析成時(shí)間戳,比直接解析日期方便,采用自然語義而不是編程語言進(jìn)行轉(zhuǎn)換日期.

  • 說明

本函數(shù)預(yù)期接受一個(gè)包含美國英語日期格式的字符串并嘗試將其解析為 Unix 時(shí)間戳(自 January 1 1970 00:00:00 GMT 起的秒數(shù),其值相對于 now 參數(shù)給出的時(shí)間,如果沒有提供此參數(shù)則用系統(tǒng)當(dāng)前時(shí)間.

  • 常用格式

// 2019-06-02
echo date("Y-m-d", strtotime("2019-05-31 +2 days"));

// 2019-07-01
echo date("Y-m-d", strtotime("2019-05-31 +1 month"));

// 2019-06-09
echo date("Y-m-d", strtotime("2019-05-31 +1 week 2 days 4 hours 2 seconds"));
  • 示例

<?php
// 設(shè)置當(dāng)前時(shí)區(qū)為上海時(shí)區(qū)
date_default_timezone_set("Asia/Shanghai");

// 獲取當(dāng)前時(shí)區(qū)
echo "當(dāng)前時(shí)區(qū) : ".date_default_timezone_get()."<br/>";

// 當(dāng)前日期時(shí)間戳
echo "當(dāng)前日期時(shí)間戳: ".time()." <--> ".strtotime("now")." <--> ".date("Y-m-d H:i:s", strtotime("now"))."<br/>";

// 一周后的日期時(shí)間: 7 days; 24 hours; 60 mins; 60 secs
$nextWeek = time() + (7 * 24 * 60 * 60);
echo "現(xiàn)在是".date("Y-m-d H:i:s").",下周是".date("Y-m-d H:i:s",$nextWeek)." <--> ".date("Y-m-d H:i:s",strtotime("+1 week"))."<br/>";

echo "現(xiàn)在是".date("Y-m-d H:i:s").",1周2天4小時(shí)2秒是".date("Y-m-d H:i:s",strtotime("+1 week 2 days 4 hours 2 seconds"))."<br/>";

echo "現(xiàn)在是".date("Y-m-d H:i:s").",下周三是".date("Y-m-d H:i:s",strtotime("next Thursday"))."<br/>";
?>

日期時(shí)間函總結(jié)

日期時(shí)間函數(shù)庫是 php 內(nèi)置的函數(shù)庫,默認(rèn)情況下已啟用,值得注意的是,日期時(shí)間和時(shí)區(qū)有關(guān),建議首先設(shè)置下時(shí)區(qū).

縱觀日期時(shí)間的操作方法,總的來說,可以大致分為兩類,一類是給計(jì)算機(jī)用的,另一類是給人看的.

  • 給人看的

date_default_timezone_set("Asia/Shanghai") : 設(shè)置當(dāng)前腳本使用的時(shí)區(qū)date("Y-m-d H:i:s") : 格式化日期時(shí)間date("Y-m-d", strtotime("2019-05-31 +2 days")) : 格式化英文描述的日期時(shí)間

  • 給計(jì)算機(jī)用的

time() : 當(dāng)前時(shí)間的秒數(shù)microtime() : 當(dāng)前時(shí)間的秒數(shù)和微秒數(shù)strtotime() : 將字符串形式的日期時(shí)間轉(zhuǎn)換成時(shí)間戳

最后,文檔那么齊全,不懂就去多看看,忘記有啥方法全靠 ide 智能提示就好,多用用就會慢慢熟練。

以上是php如何格式化日期時(shí)間的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞標(biāo)題:php如何格式化日期時(shí)間-創(chuàng)新互聯(lián)
當(dāng)前URL:http://bm7419.com/article18/dcojgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、定制網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)網(wǎng)頁設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司