程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP,Mysql日期和時間整理

PHP,Mysql日期和時間整理

編輯:關於PHP編程

工作一年,收獲了很多,慢慢做些總結,提升工作效率,


工作中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 '未知';
        }
    }



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved