PHP,Mysql日期和時間整理_PHP教程

來源:互聯網
上載者:User
工作一年,收穫了很多,慢慢做些總結,提升工作效率,


工作中mysql使用的時間是一個UNIX時間戳記:從1970年1月1日0點開始到目前時間的秒數,由於是int類型,很方便的適用於電腦處理,不僅僅是php和mysql的資料互動的一種格式,在各種用戶端,也是資料互動的標準(android/IOS)等,因此如果只是儲存和顯示日期的時候,應該使用UNIX時間戳記來計算日期和做為標準的日期格式。


工作中常用的流程是:將HTML頁面的時間轉化為時間戳記儲存到mysql中,從mysql中取出時間戳記格式化展示在web或手機用戶端。總之mysql中儲存的時間是UNIX時間戳記,然後被PHP格式化為合適的時間


介紹幾個常用的函數


1.date(),2.mktime(),3.getdate(),4.strftime()


1.date()

PHP中擷取時間和日期

使用date()函數:將時間戳記或目前時間轉化成格式化的字串,例如:

echo date('Y-i-s');//輸出2014-3-25


2.mktime()

使用mktime()將時間轉化成UNIX時間戳記

$timestamp = mktime();

擷取目前時間戳有三種方法:

mktime(),time(),date('U')

mktime做時間運算

mktime(12,0,0,$mon,$day+10,$year);十天以後的時間戳記


3.getdate()函數:

$today = getdate();

print_r($today);

//輸出

Array
(
[seconds] => 38
[minutes] => 38
[hours] => 22
[mday] => 25
[wday] => 2
[mon] => 3
[year] => 2014
[yday] => 83
[weekday] => Tuesday
[month] => March
[0] => 1395758318
)

使用checkdate()函數檢驗日期有效性


4.strftime()

格式化時間戳記

mysql格式化時間

1.DATE_FORMAT()

2.UNIX_TIMESTAMP()返回格式化成UNIX時間戳記的日期,例如:SELECT UNIX_TIMESTAMP(date) FROM table,這樣就可以在PHP中處理了


PHP中格式化時間的函數比較少,介紹幾個常用的格式化時間函數

/** *  *將timestamp時間轉化為x時x分x秒 *  */    public static function getTimeLong($seconds) {        if (!$seconds) {            return '0秒';        }        $ret = '';        if ($seconds >= 3600) {            $hours = (int)($seconds / 3600);            $seconds = $seconds % 3600;            if ($hours) {                $ret .= ($hours . '時');            }        }        if ($seconds >= 60) {            $mi = (int)($seconds / 60);            $seconds = $seconds % 60;            if ($mi) {                $ret .= ($mi . '分');            }        }        if ($seconds) {            $ret .= ($seconds . '秒');        }        return $ret;    }


/** * 將相差timestamp轉為如“1分鐘前”,“3天前”等形式 * * @param timestamp $ts_diff 目前時間 - 要格式化的timestamp */public static function formatTime($ts_diff){if ($ts_diff <=0){return date('Y-m-d');}else if ( $ts_diff <= 3600 ){return max(1, (int)($ts_diff/60)) . '分鐘前';}else if ( $ts_diff <= 86400 ){return ((int)($ts_diff/3600)) . '小時前';}else{return ((int)($ts_diff/86400)) . '天前';}}

    /** 將數字星期轉換成字串星期 weekNum2String($num)     * @param int     * @return string     */    public static function weekNum2String($num){        switch($num){            case 1:                return '星期一';            case 2:                return '星期二';            case 3:                return '星期三';            case 4:                return '星期四';            case 5:                return '星期五';            case 6:                return '星期六';            case 7:                return '星期日';            default:                return '未知';        }    }



http://www.bkjia.com/PHPjc/755788.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/755788.htmlTechArticle工作一年,收穫了很多,慢慢做些總結,提升工作效率, 工作中mysql使用的時間是一個UNIX時間戳記:從1970年1月1日0點開始到目前時間的秒數...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.