Unix 時間戳與日期

湯清麗發表於2019-11-03

第1章 Unix 時間戳

Unix 時間戳:

自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當前時間的秒數 .

相關函式:

time() --- 函式返回一個當前系統的時間戳

mktime( ) --- 取得一個日期的 Unix 時間戳

​ 格式:int mktime(時[,分[,秒[,月[,日[,年[,is_dst區]]]]]]);

​ 注意:is_dst參數列示是否為夏時制,PHP5.10後此引數已廢除。

strtotime( ) --- 將任何英文文字的日期時間描述解析為 Unix 時間戳

​ 格式:int strtotime ( string $time [, int $now ] )

案例:

//系統時間戳
echo "當前系統的時間戳:".time(); //秒數

//mktime -- 給我一個年月日時分秒,我返還給你一個時間戳,用的非常少
echo "獲取指定日期2033-2-12的時間戳:".mktime(0,0,0,2,12,2033);

//strtotime() -- 如果使用也是用這個
echo "獲取指定日期2034-1-1的時間戳:".strtotime('2034-1-1');
echo "獲取3天前的時間戳:".strtotime('-3 day');
echo "獲取3天后的時間戳:".strtotime('3 day');

第2章 在 PHP 中獲取日期和時間

getdate -- 取得日期/時間資訊。

​ 格式:array getdate ( [int timestamp] )

​ 返回一個根據 timestamp 得出的包含有日期資訊的結合陣列。如果沒有給出時間戳則認為是當前本地時間。

//getdate --- 獲取日期/時間資訊

$date = getdate();//當前日期資訊
//$date = getdate(234456768);//獲取指定時間戳的日期資訊

echo "<pre>";//格式化輸出
print_r($date);//列印時間陣列

date -- 格式化一個本地時間/日期。

格式:string date ( string format [, int timestamp] )

​ 返回將整數 timestamp 按照給定的格式字串而產生的字串。如果沒有給出時間戳則使用本地當前時間。換句話說,timestamp 是可選的,預設值為 time()(當前時間戳)。

​ 例如: echo date(“Y年m月d日 H:i:s”); //2010年10月28日 14:22:28

常用引數:

Y:四位數年 m:月01-12 n:月1-12 d:天01-31 j:天1-31

H:時24時制 h:小時12制 i:分鐘00-59 s:秒00-59 w:星期幾0-6

A:上午AM或下午PM a:上午am或下午pm。

案例:

//date --- 格式化一個本地時間/日期
echo date("Y年m月d",time());
echo date("Y/m/d",time());
echo date("Y-m-d H:i:s");//不寫第二個引數預設是當前時間戳

第3章 修改PHP的預設時區

修改PHP的預設時區有兩種方式:

​ 1、修 php.ini 配置檔案:date.timezone = PRC

​ 2、date_default_timezone_set( ): -- 設定用於一個指令碼中所有日期時間函式的預設時區 。

​ 如:date_default_timezone_set(“PRC”); //中國時區。

​ 3、date_default_timezone_get( ): -- 獲取當前時區

案例:

date_default_timezone_set('PRC');//設定中國時區

//date --- 格式化一個本地時間/日期
echo date("Y年m月d",time());
echo date("Y/m/d",time());
echo date("Y-m-d H:i:s");//不寫第二個引數預設是當前時間戳

第4章 使用微秒計算PHP指令碼執行時間

1毫秒(ms) = 0.001秒(s)

1微秒(μs) = 0.001毫秒(ms)

1納秒(ns) = 0.001微秒(μs)

microtime -- 返回當前 Unix 時間戳和微秒數

​ 格式:mixed microtime ( [bool get_as_float] )

​ microtime() 當前 Unix 時間戳以及微秒數。

​ 如果呼叫時不帶可選引數,本函式返回一個字串,其中後者是自 Unix 紀元(0:00:00 January 1, 1970 GMT)起到現在的秒數,前者 是微秒部分。

​ 如果給出了引數並且其值等價於 TRUE,microtime() 將返回一個擷取為小數點4帶秒數為浮點數。

$start = microtime(true);

for($i=1;$i<10000;$i++) {
    $tmp = 13333/234;
}

$end = microtime(true);
echo $end - $start;
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章