溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在php中使用strftime函數(shù)對日期時間進(jìn)行獲取

發(fā)布時間:2021-01-27 16:37:24 來源:億速云 閱讀:159 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎么在php中使用strftime函數(shù)對日期時間進(jìn)行獲取,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

strftime()函數(shù)的用法

strftime()函數(shù)可以把YYYY-MM-DD HH:MM:SS格式的日期字符串轉(zhuǎn)換成其它形式的字符串。
strftime()的語法是strftime(格式, 日期/時間, 修正符, 修正符, ...)

函數(shù)strftime()的操作有些類似于sprintf():識別以百分號(%)開始的格式命令集合,格式化輸出結(jié)果放在一個字符串中。格式化命令說明串strDest中各種日期和時間信息的確切表示方法。格式串中的其他字符原樣放進(jìn)串中。格式命令列在下面,它們是區(qū)分大小寫的。

strftime()定義和用法
strftime() 函數(shù)根據(jù)區(qū)域設(shè)置格式化本地時間/日期。

strftime()語法
strftime(format,timestamp)參數(shù) 描述
format 可選。規(guī)定如何返回結(jié)果。
timestamp 可選。
提示和注釋
提示:與 gmstrftime() 的行為相同,不同的是返回時間是本地時間。

它可以用以下的符號對日期和時間進(jìn)行格式化:

%a 星期幾的簡寫
%A 星期幾的全稱
%b 月份的簡寫
%B 月份的全稱
%c 標(biāo)準(zhǔn)的日期的時間串
%C 年份的前兩位數(shù)字
%d 十進(jìn)制表示的每月的第幾天
%D 月/天/年
%e 在兩字符域中,十進(jìn)制表示的每月的第幾天
%F 年-月-日
%g 年份的后兩位數(shù)字,使用基于周的年
%G 年份,使用基于周的年
%h 簡寫的月份名
%H 24小時制的小時
%I 12小時制的小時
%j 十進(jìn)制表示的每年的第幾天
%m 十進(jìn)制表示的月份
%M 十時制表示的分鐘數(shù)
%n 新行符
%p 本地的AM或PM的等價顯示
%r 12小時的時間
%R 顯示小時和分鐘:hh:mm
%S 十進(jìn)制的秒數(shù)
%t 水平制表符
%T 顯示時分秒:hh:mm:ss
%u 每周的第幾天,星期一為第一天 (值從1到7,星期一為1)
%U 第年的第幾周,把星期日作為第一天(值從0到53)
%V 每年的第幾周,使用基于周的年
%w 十進(jìn)制表示的星期幾(值從0到6,星期天為0)
%W 每年的第幾周,把星期一做為第一天(值從0到53)
%x 標(biāo)準(zhǔn)的日期串
%X 標(biāo)準(zhǔn)的時間串
%y 不帶世紀(jì)的十進(jìn)制年份(值從0到99)
%Y 帶世紀(jì)部分的十制年份
%z,%Z 時區(qū)名稱,如果不能得到時區(qū)名稱則返回空字符。
%% 輸出百分號

strftime()的用法舉例如下:

select strftime('%Y-%m-%d %H:%M:%S','now','localtime');
結(jié)果:2018-5.15 23:58:09
其實更好的用法是這樣的,比如統(tǒng),本月或本年的支出:
select strftime('%Y-%m',日期) as 月份,sum(支出) as 月支出 from 流水帳 group by 月份;

switch用法

<?php
setlocale(LC_TIME,"chs");     //設(shè)置本地環(huán)境
$weekday = strftime("%A");     //聲明變量$weekday的值,獲得了系統(tǒng)時間并只需要獲取星期幾
switch ($weekday){     //switch語句,判斷$weekday的值
 case "星期一":     //如果變量的值為“星期一”
 echo "今天是$weekday ,新的一天開始了!";
 break;
 case "星期二":     //如果變量的值為“星期二”
 echo "今天是$weekday ,認(rèn)真的工作態(tài)度真的很重要!";
 break;
 case "星期三":     //如果變量的值為“星期三”
 echo "今天是$weekday ,充實生活,努力工作!";
 break;
 case "星期四":     //如果變量的值為“星期四”
 echo "今天是$weekday ,勤奮才能創(chuàng)造績效,加油!)";
 break;
 case "星期五":     //如果變量的值為“星期五”
 echo "今天是$weekday ,積極完成工作任務(wù)!";
 break;
 case "星期六":     //如果變量的值為“星期六”
 echo "今天是$weekday ,可以放松心情了!";
 break;
 default:      //默認(rèn)值
 echo "今天是$weekday , 去happy一下!";
 break;
}
?>

下面億速云小編繼續(xù)為大家補(bǔ)充一些例子:

<?php
echo(strftime("%b %d %Y %X", mktime(20,0,0,12,31,98)));
echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,12,31,98)));

//輸出當(dāng)前日期、時間和時區(qū)
echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time()));
?>

輸出:

Dec 31 1998 20:00:00
Dec 31 1998 19:00:00

獲取指定日期的unix時間戳 strtotime("2009-1-22") 示例如下:
echo strtotime("2009-1-22") 結(jié)果:1232553600
說明:返回2009年1月22日0點(diǎn)0分0秒時間戳

二,獲取英文文本日期時間 示例如下:
便于比較,使用date將當(dāng)時間戳與指定時間戳轉(zhuǎn)換成系統(tǒng)時間

(1)打印明天此時的時間戳strtotime(" 1 day")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2009-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime(" 1 day")) 結(jié)果:2009-01-23 09:40:25

(2)打印昨天此時的時間戳strtotime("-1 day")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2009-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("-1 day")) 結(jié)果:2009-01-21 09:40:25

(3)打印下個星期此時的時間戳strtotime(" 1 week")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2009-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime(" 1 week")) 結(jié)果:2009-01-29 09:40:25

(4)打印上個星期此時的時間戳strtotime("-1 week")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2009-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("-1 week")) 結(jié)果:2009-01-15 09:40:25

(5)打印指定下星期幾的時間戳strtotime("next Thursday")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2009-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("next Thursday")) 結(jié)果:2009-01-29 00:00:00

(6)打印指定上星期幾的時間戳strtotime("last Thursday")
當(dāng)前時間:echo date("Y-m-d H:i:s",time()) 結(jié)果:2009-01-22 09:40:25
指定時間:echo date("Y-m-d H:i:s",strtotime("last Thursday")) 結(jié)果:2009-01-15 00:00:00

上述就是小編為大家分享的怎么在php中使用strftime函數(shù)對日期時間進(jìn)行獲取了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI