ホームページ  >  記事  >  バックエンド開発  >  PHP開発ノートシリーズ(3) - 日時

PHP開発ノートシリーズ(3) - 日時

WBOY
WBOYオリジナル
2016-06-13 13:25:07887ブラウズ

PHP開発ノートシリーズ(3) - 日時

??? 最初の 2 つの記事が完了しました 『PHP開発ノートシリーズ(1) - PDOの使い方』 および「PHP 開発ノート シリーズ (2) - 文字列の使用法」 , 今日からPHPの日時処理とMySQLの日時処理の勉強を始めた「PHP開発ノートシリーズ(3) - 日付と時刻」 。

?

????? JAVA では、SimpleDateFormat クラスを通じてサーバーの現在時刻を取得し、formatString を指定できます。値は指定された形式にフォーマットされます。同様に、PHP にも同様のクラスと関数、つまり time 関数と date 関数があります。 time() は new Date() に似ており、サーバーの現在時刻を取得できます。 date 関数は SimpleDateFormat クラスに似ています。

1. time 関数を使用してサーバーの現在時刻を取得し、date 関数を使用してそれをフォーマットします

file:time.php
url:http://localhost:88/datetime/timephp
<?php
    // 获取服务器当前时间
    $time = time();
   
    echo $time."<br/>";
   
    // 获取当前默认是时区
    echo date_default_timezone_get()."<br/>";
    echo date("Y-m-d h:i:s", $time)."<br/>";

    echo "<hr/>";
   
    // 设置当前默认是时区
    date_default_timezone_set("America/New_York");
    echo date("Y-m-d h:i:s", $time)."<br/>";
?>
?


2. 文字列 から日付と時刻を構築します。

file:strtotime.php
url:http://localhost:88/datetime/strtotime.php
<?php  
    // 字符串转time类型
    $time1 = strtotime("2012-05-27 10:52:05");
    
    // 使用date函数获取星期几并输出
    echo 'today:'.date("l", $time1)."<br/>";
    
    // 使用date函数获取当月总天数并输出
    echo 'total day of this month:'.date("t", $time1)."<br/>";
?>
?

3. 現在時刻に基づく日付と時刻の計算

file:date-compute.php
url:http://localhost:88/datetime/date-compute.php
<?php
    // 计算time
    $nextDay = strtotime("+1 day", time());
    $lastDay = strtotime("-1 day", time());
    $nextMonth = strtotime("+1 month", time());
    $lastMonth = strtotime("-1 month", time());
    $nextYear = strtotime("+1 year", time());
    $lastYear = strtotime("-1 year", time());
    
    echo 'new day:'.date("Y-m-d h:i:s", $nextDay)."<br/>";
    echo 'last day:'.date("Y-m-d h:i:s", $lastDay)."<br/>";
    echo 'next month:'.date("Y-m-d h:i:s", $nextMonth)."<br/>";
    echo 'last month:'.date("Y-m-d h:i:s", $lastMonth)."<br/>";
    echo 'next year:'.date("Y-m-d h:i:s", $nextYear)."<br/>";
    echo 'last year:'.date("Y-m-d h:i:s", $lastYear)."<br/>";
    
    // 通过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 ステートメントでも使用できます。たとえば、過去 3 日間のログ情報をクエリする場合、SQL は次のようになります。
SELECT * FROM ログ 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

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。