11.1.1 PHP中應用日期和時間1

11.1.1 PHP中應用日期和時間1

UNIX時間戳

Unix 時間戳 :

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

相關函數(shù):

time( ): 函數(shù)返回一個當前系統(tǒng)的時間戳
mktime( ): 取得一個日期的 Unix 時間戳
格式:int mktime(時[,分[,秒[,月[,日[,年[,is_dst區(qū)]]]]]]);
注意:is_dst參數(shù)表示是否為夏時制,PHP5.10后此參數(shù)已廢除。
strtotime( ):將任何英文文本的日期時間描述解析為 Unix 時間戳
格式:int strtotime ( string $time [, int $now ] )

<?php   
    echo date("Y-m-d", strtotime("now"));                   //輸出: 2012-04-05
    echo date("Y-m-d", strtotime("8 may 2012"));       //輸出: 2012-05-08
    echo date("Y-m-d", strtotime("+1 day"));               //輸出: 2012-04-06
    echo date("Y-m-d", strtotime("last monday"));       //輸出: 2012-04-02
    $now = strtotime("now");                           //當前時間 
    $endtime = strtotime("2014-08-18 08:08:08"); //設定畢業(yè)時間,轉成時間戳
    
    $second = $endtime - $now;                  //獲取畢業(yè)時間到現(xiàn)在時間的時間戳(秒數(shù))
    $year = floor($second/3600/24/365);     //從這個時間戳中換算出年頭數(shù)
    $temp = $second - $year*365*24*3600;//從時間戳中去掉整年的秒數(shù),就剩下月份的秒數(shù)
    $month = floor($temp/3600/24/30);       //從這個時間戳中換算出月數(shù)
    $temp = $temp - $month*30*24*3600;  //從時間戳中去掉整月的秒數(shù),就剩下天的秒數(shù)
    $day = floor($temp/3600/24);                //從這個時間戳中換算出剩余的天數(shù)
    
    $temp = $temp - $day*3600*24;           //從時間戳中去掉整天的秒數(shù),就剩下小時的秒數(shù)
    $hour = floor($temp/3600);                   //從這個時間戳中換算出剩余的小時數(shù)
    $temp = $temp - $hour*3600;               //從時間戳中去掉整小時的秒數(shù),就剩下分的秒數(shù)
    $minute = floor($temp/60);                    //從這個時間戳中換算出剩余的分數(shù)
    $second1 = $temp - $minute*60;          //最后就只有剩余的秒數(shù)了
    
    echo "距離培訓畢業(yè)還有{$year}年{$month}月{$day}天{$hour}小時{$minute}分{$second1}秒";

日期和時間的格式化輸出

date -- 格式化一個本地時間/日期
格式:string date ( string format [, int timestamp] )
返回將整數(shù) timestamp 按照給定的格式字串而產(chǎn)生的字符串。如果沒有給出時間戳則使用本地當前時間。換句話說,timestamp 是可選的,默認值為 time()(當前時間戳)。
例如:
echo date(“Y年m月d日 H:i:s”); //2010年10月28日 14:22:28
常用參數(shù):
Y:四位數(shù)年 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。

修改PHP的默認時區(qū)

修改PHP的默認時區(qū)有兩種方式:
1、修php.ini配置文件:
date.timezone = Etc/GMT+8
2、date_default_timezone_set( ): -- 設定用于一個腳本中所有日期時間函數(shù)的默認時區(qū) 。
如:date_default_timezone_set(“PRC”); //中國時區(qū)。
date_default_timezone_get( ): -- 獲取當前時區(qū)

使用微秒計算PHP腳本執(zhí)行時間

microtime -- 返回當前 Unix 時間戳和微秒數(shù)
格式:mixed microtime ( [bool get_as_float] )
microtime() 當前 Unix 時間戳以及微秒數(shù)。本函數(shù)僅在支持 gettimeofday() 系統(tǒng)調(diào)用的操作系統(tǒng)下可用。
如果調(diào)用時不帶可選參數(shù),本函數(shù)以 "msec sec" 的格式返回一個字符串,其中 sec 是自 Unix 紀元(0:00:00 January 1, 1970 GMT)起到現(xiàn)在的秒數(shù),msec 是微秒部分。字符串的兩部分都是以秒為單位返回的。
如果給出了 get_as_float 參數(shù)并且其值等價于 TRUE,microtime() 將返回一個浮點數(shù)。

test.php

<?php
/* 時間戳 
 *
 * 1. 是一個整數(shù)
 * 2. 1970-1-1 到現(xiàn)在的秒數(shù)  1213212121
 *
 * 2014-02-14 11:11:11
 *
 * 02/14/2014 11:11:11
 *
 *
 */
    date_default_timezone_set("PRC");

    $t = time()-60*60*24*7;

    echo date("Y-m-d H:i:s")."<br>";
    echo date("Y/m/d H:i:s", $t)."<br>";
    echo date("Y年m月d日 H:i:s", $t)."<br>";
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容