PHP開發劄記系列(三)-日期與時間

來源:互聯網
上載者:User
PHP開發筆記系列(三)-日期與時間

??? 前兩篇完成了《PHP開發筆記系列(一)-PDO使用》和《PHP開發筆記系列(二)-字串使用》,今天開始研究一下PHP中的日期時間處理和MySQL中的日期時間處理,《PHP開發筆記系列(三)-日期與時間》。

?

????? 日期時間是平常用得比較多的函數,在JAVA中我們通過new Date()可以擷取伺服器的目前時間,通過SimpleDateFormat類,並指定formatString,可以將date對象的值格式化成指定的形式。同理,在PHP中,同樣有類似的類和函數,那就是time函數和date函數。time()類似於new Date(),能夠擷取伺服器目前時間,date函數類似於SimpleDateFormat類。

1. 使用time函數擷取伺服器目前時間,使用date函數進行格式化

file:time.phpurl:http://localhost:88/datetime/timephp";       // 擷取當前預設是時區    echo date_default_timezone_get()."
"; echo date("Y-m-d h:i:s", $time)."
"; echo ""; // 設定當前預設是時區 date_default_timezone_set("America/New_York"); echo date("Y-m-d h:i:s", $time)."
";?>
?


2. 通過字串構造日期時間

file:strtotime.phpurl:http://localhost:88/datetime/strtotime.php";        // 使用date函數擷取當月總天數並輸出    echo 'total day of this month:'.date("t", $time1)."
";?>
?

3. 基於目前時間的日期時間計算

file:date-compute.phpurl:http://localhost:88/datetime/date-compute.php";    echo 'last day:'.date("Y-m-d h:i:s", $lastDay)."
"; echo 'next month:'.date("Y-m-d h:i:s", $nextMonth)."
"; echo 'last month:'.date("Y-m-d h:i:s", $lastMonth)."
"; echo 'next year:'.date("Y-m-d h:i:s", $nextYear)."
"; echo 'last year:'.date("Y-m-d h:i:s", $lastYear)."
"; // 通過date函數擷取年份 echo 'current year:'.date("Y");?>

?
4. 在SQL中處理日期時間

SELECT NOW()SELECT CURRENT_TIMESTAMP();SELECT DATE_FORMAT(NOW(), "%Y-%m-%d");SELECT DATE_FORMAT(NOW(), "%h:%i:%s");SELECT DATE_FORMAT(NOW(), "%W %w %p");

?

5. 在SQL中進行日期計算
??? 使用DATE_ADD函數進行未來日期的計算

SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR);SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE);SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND);

?

??? 使用DATE_SUB函數進行過去日期的計算

SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR);SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE);SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND);

?


??? 上述函數的執行結合也可用於SQL語句當中,如查詢前三天的日誌資訊,SQL如下:
SELECT * FROM log WHERE create_time BETWEEN SELECT DATE_SUB(NOW(), INTERVAL 3 DAY) AND SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);

?

??? 本文地址:http://ryan-d.iteye.com/blog/1543363

?

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.