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
?