PHP中time(),date(),mktime()區(qū)別介紹_PHP教程
Jul 21, 2016 pm 04:13 PM
checkdate : 驗(yàn)證日期的正確性。
date : 將伺服器的時(shí)間格式化。
strftime : 將伺服器的時(shí)間本地格式化。
getdate : 取得時(shí)間及日期資訊。
gettimeofday : 取得目前時(shí)間。
gmdate : 取得目前與 GMT 差後的時(shí)間。
easter_date : 計(jì)算復(fù)活節(jié)日期。
easter_days : 計(jì)算復(fù)活節(jié)與三月廿一日之間日期數(shù)。
mktime : 取得 UNIX 時(shí)間戳記。
gmmktime : 取得 UNIX 時(shí)間戳記的格林威治時(shí)間。
time : 取得目前時(shí)間的 UNIX 時(shí)間戳記。
microtime : 取得目前時(shí)間的 UNIX 時(shí)間戳記的百萬分之一秒值。
checkdate 驗(yàn)證日期的正確性。
語法: int checkdate(int month, int day, int year);
傳回值: 整數(shù)
函數(shù)種類: 時(shí)間日期
內(nèi)容說明若日期是有效的則回傳true,如果日期有問題,則傳回false。本函數(shù)可以用來檢查日期是否有效。有效範(fàn)圍如下:
年 為 0 至 32767 年
月 為 1 至 12 月
日 則隨著月份及閏年變化
date 將伺服器的時(shí)間格式化。
語法: string date(string format, int [timestamp]);
傳回值: 字串
函數(shù)種類: 時(shí)間日期
內(nèi)容說明傳回值的?字串依配置的格式來決定字串依配置的格式來決定字串。若有傳入時(shí)間戳記值,則將時(shí)間戳格式化回傳;若無傳入時(shí)間戳記值,則將目前伺服器的時(shí)間格式化回傳。要將日期轉(zhuǎn)換為其它的語系格式,應(yīng)使用setlocale() 及 strftime() 二個(gè)函數(shù)。字串格式化的選項(xiàng)如下:
a - "am" 或是"pm"
A - "AM" 或是"PM"
d - 幾日,二位數(shù)字,若不足二位則前面補(bǔ)零; 如: "01" 至"31"
D - 星期幾,三個(gè)英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小時(shí)制的小時(shí); 如: "01" 至"12"
H - 24 小時(shí)制的小時(shí); 如: "00" 至"23"
g - 12 小時(shí)制的小時(shí),不足二位不補(bǔ)零; 如: "1" 至12"
G - 24 小時(shí)制的小時(shí),少於二位不補(bǔ)零; 如: "0" 至"23"
i - 分鐘; 如: "00" 至"59"
j - 幾日,二位數(shù)字,若不足二位不補(bǔ)零; 如: "1" 至"31"
l - 星期幾,英文全名; 如: "Friday"
m - 月份,二位數(shù)字,若不足二位則在前面補(bǔ)零; 如: "01" 至"12"
n - 月份,二位數(shù)字,若不足二位則不補(bǔ)零; 如: "1" 至"12"
M - 月份,三個(gè)英文字母; 如: "Jan"
s - 秒; 如: "00" 至"59"
S -字尾加英文序數(shù),二個(gè)英文字母; 如: "th","nd"
t - 指定月份的天數(shù); 如: "28" 至"31"
U - 總秒數(shù)
w - 數(shù)字型的星期幾,如: "0" (星期日) 至"6" (星期六)
Y - 年,四位數(shù)字; 如: "1999"
y - 年,二位數(shù)字;如: "99"
z - 一年中的第幾天; 如: "0" 至"365"
其它不在上列的字符則直接列出該字符。
範(fàn)例一:
print(date( "l dS of F Y h:i: s A" ));
print("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));
?>
$tomorrow = mktime(0,0,0,0,date( "m") ,date("d") 1,date("Y"));
$lastmonth = mktime(0,0,0,date("m")-1,date("d") , date("Y"));
$nextyear = mktime(0,0,0,date("m"), date("d", date("Y") 1);
?>
參考 gmdate() mktime()
strftime 將伺服器的時(shí)間本地格式化。
語法: string strftime(string format, int [timestamp]);
傳回值: 字串
函數(shù)種類: 時(shí)間日期
內(nèi)容說明傳回值的字串依配置的格式來決定。若有傳入時(shí)間戳記值,則將時(shí)間戳格式化傳回;若無傳入時(shí)間戳記值,則將目前伺服器的時(shí)間本機(jī)格式化傳回。月份或星期名稱隨著本地語系配置 setlocale() 的不同而改變。
傳回的字串可以依照下列的格式而定:
%a 星期幾的縮寫。
%A 星期幾的全名。
%b 月份名稱的縮寫。
%B 月份名稱的全名。
%c 本地端日期時(shí)間較佳表示字串。
%d 以數(shù)字表示本月的第幾天 (範(fàn)圍為 00 至 31)。
%H 以 24 小時(shí)制數(shù)字表示小時(shí)數(shù) (範(fàn)圍為 00 至 23)。
%I 以 12 小時(shí)制數(shù)字表示小時(shí)數(shù) (範(fàn)圍為 01 至 12)。
%j 以數(shù)字表示當(dāng)年的第幾天 (範(fàn)圍為 001 至 366)。
%m 月份的數(shù)字 (範(fàn)圍由 1 至 12)。
%M 分鐘。
%p 以 'AM' 或 'PM' 表示本地端時(shí)間。
%S 秒數(shù)。
%U 數(shù)字表示為本年度的第幾週,第一週由第一個(gè)週日開始。
%W 數(shù)字表示為本年度的第幾週,第一週由第一個(gè)週一開始。
%w 用數(shù)字表示本週的第幾天 ( 0 為週日)。
%x 不含時(shí)間的日期表示法。
%X 不含日期的時(shí)間表示法。
%y 二位數(shù)字表示年份 (範(fàn)圍由 00 至 99)。
%Y 完整的年份數(shù)字表示,即四位數(shù)。
%Z 時(shí)區(qū)或名稱縮寫。
%% % 字元。
使用範(fàn)例
setlocale ("LC_TIME", "C");
print(strftime("%A in Finnish is "));
setlocale ("LC_TIME", "fi");
print(strftime("%A, in French "));
setlocale ("LC_TIME", "fr");
print(strftime("%A and in German "));
setlocale ("LC_TIME", "de");
print(strftime(" %A.n"));
?>
參考 setlocale() mktime()
getdate 取得時(shí)間及日期資訊。
語法: array getdate(int timestamp);
傳回值: 陣列
函數(shù)種類: 時(shí)間日期
內(nèi)容說明傳回陣列的元素包含下列的項(xiàng)目:
"seconds" - 秒
"minutes" - 分
"hours" - 時(shí)
"mday" - 當(dāng)月的第幾天
"wday" - 當(dāng)週的第幾天數(shù)字
"mon" - 月份數(shù)字
"year" - 年,數(shù)字
"yday" - 當(dāng)年的第幾天數(shù)字; 如: "299"
"weekday" - 星期幾全名; 如: "Friday"
" month" - 月份全名; 如: "January"
gettimeofday 取得目前時(shí)間。
語法: array gettimeofday(void);
傳回值: 陣列
函數(shù)種類: 時(shí)間日期
內(nèi)容說明傳回陣列的元素包含下列的項(xiàng)目:
"sec" - 秒
"usec" - 百萬分之一秒
"minuteswest" - 格林威治時(shí)間的分
"dsttime" - 目的的時(shí)區(qū)
gmdate 取得目前與GMT 差後的時(shí)間。
語法: string gmdate(string format, int timestamp);
傳回值: 字串
函數(shù)種類: 時(shí)間日期
內(nèi)容說明本函數(shù)與date() 函數(shù)相似,不同的是本函數(shù)回與格林威治標(biāo)準(zhǔn)時(shí)間(Greenwich Mean Time, GMT) 時(shí)間差後的時(shí)間
使用範(fàn)例
echo date( "M d Y H:i:s" ,mktime(0,0,0,1,1,1998) );
echo gmdate( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
?>
若執(zhí)行本範(fàn)例的機(jī)器在芬蘭(Finland, GMT 0200),回傳的結(jié)果為:
Jan 01 1998 00:00:00
Dec 31 1997 22:00:00
Dec 31 1997 22:00:00
參考() mktime() gmmktime()
easter_date 計(jì)算復(fù)活節(jié)日期。
語法: int easter_date(int [year]);
傳回值: 整數(shù)
函數(shù)種類: 時(shí)間日期
內(nèi)容說明: 輸入某年份,則以UNIX 時(shí)間戳記的格式傳回該年的復(fù)活節(jié)日期,若沒有輸入年份,則計(jì)算當(dāng)年的日期。價(jià)值的?注意的是輸入的年份必需在西元 1970 至 2037 年之間,否則無法計(jì)算。
echo date("M-d-Yate", easter_date(19999);
echo date("M-d-Y", easter_date(2000));
echo date("M-d-Y", easter_date(2001));
?>
回傳結(jié)果為
Apr-04-1999
Apr-23-2000
Apr-15-2001
easter_days 計(jì)算復(fù)活節(jié)與三月廿一日之間日期數(shù)。
語法: int easter_days(int [year]);
傳回值: 整數(shù)
函數(shù)種類: 時(shí)間日期
內(nèi)容說明輸入某年份,則以計(jì)算該年復(fù)活節(jié)與三月二十一日之間的日期數(shù),若沒有輸入年份,則以當(dāng)年計(jì)算。這個(gè)函數(shù)可以用來取代 easter_date() 1970-2037 年外範(fàn)圍無法計(jì)算的問題。
使用範(fàn)例
echo easter_days(1999);
echo easter_days(1999);
echo easter_days(1999);echo easter_days(1913);?>
回傳結(jié)果為:
14 (4/4)
32 (4/22)
2 (3/23)
參考 easter_date()
mktime 取得 UNIX 時(shí)間戳記。
語法: int mktime(int hour, int minute, int second, int month, int day, int year);
傳回值: 整數(shù)
內(nèi)容說明: 輸入一個(gè)時(shí)間,則傳回UNIX 時(shí)間戳記的長(zhǎng)整數(shù)。
程式碼如下:
echo date( "M-d-Y", mktime(0,0, mktime(0,0, mktime(0,0, mktime(0,0, mktime) 0,12,32,1997) );
echo date( "M-d-Y", mktime(0,0,0,13,1,1997) );
參考 date() time()
gmmktime 取得 UNIX 時(shí)間戳記的格林威治時(shí)間。
語法: int gmmktime(int hour, int minute, int second, int month, int day, int year);
傳回值: 整數(shù)
函數(shù)種類: 時(shí)間日期
內(nèi)容說明: 輸入一個(gè)時(shí)間,則傳回 UNIX 的格林威治時(shí)間戳記的長(zhǎng)整數(shù)。
time 取得目前時(shí)間的 UNIX 時(shí)間戳記。
語法: int time(void);
函數(shù)種類: 時(shí)間日期
內(nèi)容說明 傳回目前時(shí)間的戳記值。
參考 date()
microtime 取得目前時(shí)間的 UNIX 時(shí)間戳記的百萬分之一秒值。
語法: string microtime(void);
內(nèi)容說明 傳回目前時(shí)間的百萬分之一秒戳值。若作業(yè)系統(tǒng)沒有提供 gettimeofday() 的系統(tǒng)呼叫函數(shù),則本函數(shù)亦無效。
checkdate : 驗(yàn)證日期的正確性。 date : 將伺服器的時(shí)間格式化。 strftime : 將伺服器的時(shí)間本機(jī)格式化。 getdate : 取得時(shí)間及日期資訊。 ...
熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

避免N 1查詢問題,通過提前加載關(guān)聯(lián)數(shù)據(jù)來減少數(shù)據(jù)庫查詢次數(shù);2.僅選擇所需字段,避免加載完整實(shí)體以節(jié)省內(nèi)存和帶寬;3.合理使用緩存策略,如Doctrine的二級(jí)緩存或Redis緩存高頻查詢結(jié)果;4.優(yōu)化實(shí)體生命週期,定期調(diào)用clear()釋放內(nèi)存以防止內(nèi)存溢出;5.確保數(shù)據(jù)庫索引存在並分析生成的SQL語句以避免低效查詢;6.在無需跟蹤變更的場(chǎng)景下禁用自動(dòng)變更跟蹤,改用數(shù)組或輕量模式提升性能。正確使用ORM需結(jié)合SQL監(jiān)控、緩存、批量處理和適當(dāng)優(yōu)化,在保持開發(fā)效率的同時(shí)確保應(yīng)用性能。

要構(gòu)建彈性的PHP微服務(wù),需使用RabbitMQ實(shí)現(xiàn)異步通信,1.通過消息隊(duì)列解耦服務(wù),避免級(jí)聯(lián)故障;2.配置持久化隊(duì)列、持久化消息、發(fā)布確認(rèn)和手動(dòng)ACK以確??煽啃?;3.使用指數(shù)退避重試、TTL和死信隊(duì)列安全處理失??;4.通過supervisord等工具守護(hù)消費(fèi)者進(jìn)程並啟用心跳機(jī)制保障服務(wù)健康;最終實(shí)現(xiàn)系統(tǒng)在故障中持續(xù)運(yùn)作的能力。

使用正確的PHP基礎(chǔ)鏡像並配置安全、性能優(yōu)化的Docker環(huán)境是實(shí)現(xiàn)生產(chǎn)就緒的關(guān)鍵。 1.選用php:8.3-fpm-alpine作為基礎(chǔ)鏡像以減少攻擊面並提升性能;2.通過自定義php.ini禁用危險(xiǎn)函數(shù)、關(guān)閉錯(cuò)誤顯示並啟用Opcache及JIT以增強(qiáng)安全與性能;3.使用Nginx作為反向代理,限制訪問敏感文件並正確轉(zhuǎn)發(fā)PHP請(qǐng)求至PHP-FPM;4.採(cǎi)用多階段構(gòu)建優(yōu)化鏡像,移除開發(fā)依賴,設(shè)置非root用戶運(yùn)行容器;5.可選Supervisord管理多個(gè)進(jìn)程如cron;6.部署前驗(yàn)證無敏感信息洩

settings.json文件位於用戶級(jí)或工作區(qū)級(jí)路徑,用於自定義VSCode設(shè)置。 1.用戶級(jí)路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級(jí)路徑:項(xiàng)目根目錄下的.vscode/settings

PHP的垃圾回收機(jī)制基於引用計(jì)數(shù),但循環(huán)引用需靠週期性運(yùn)行的循環(huán)垃圾回收器處理;1.引用計(jì)數(shù)在變量無引用時(shí)立即釋放內(nèi)存;2.循環(huán)引用導(dǎo)致內(nèi)存無法自動(dòng)釋放,需依賴GC檢測(cè)並清理;3.GC在“可能根”zval達(dá)閾值或手動(dòng)調(diào)用gc_collect_cycles()時(shí)觸發(fā);4.長(zhǎng)期運(yùn)行的PHP應(yīng)用應(yīng)監(jiān)控gc_status()、適時(shí)調(diào)用gc_collect_cycles()以避免內(nèi)存洩漏;5.最佳實(shí)踐包括避免循環(huán)引用、使用gc_disable()優(yōu)化性能關(guān)鍵區(qū)及通過ORM的clear()方法解引用對(duì)象,最

Bref使PHP開發(fā)者能無需管理服務(wù)器即可構(gòu)建可擴(kuò)展、成本高效的應(yīng)用。 1.Bref通過提供優(yōu)化的PHP運(yùn)行時(shí)層,將PHP帶入AWSLambda,支持PHP8.3等版本,並與Laravel、Symfony等框架無縫集成;2.部署步驟包括:使用Composer安裝Bref,配置serverless.yml定義函數(shù)和事件,如HTTP端點(diǎn)和Artisan命令;3.執(zhí)行serverlessdeploy命令即可完成部署,自動(dòng)配置APIGateway並生成訪問URL;4.針對(duì)Lambda限制,Bref提供解決

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha
