0Pricing
PHP Academy · レッスン

Unixタイムスタンプとdate()

現在時刻をUnixタイムスタンプとして取得し、date()で整形します

「Unixタイムスタンプとdate()」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

PHP における時刻

PHP では、時刻を Unix タイムスタンプとして表します。これは、1970年1月1日 00:00:00 UTC(Unix エポック)からの経過秒数です。主な関数:

  • time() — 現在の Unix タイムスタンプ
  • date($format, $timestamp) — タイムスタンプをフォーマットします
  • mktime() — 日付の各要素からタイムスタンプを作成します

time()

現在の Unix タイムスタンプを取得します。

<?php
$now = time();
echo $now;           // e.g. 1716800000
echo gettype($now);  // integer

// 1 day in seconds
$tomorrow = time() + 86400;
$yesterday = time() - 86400;

echo date('Y-m-d', $tomorrow);  // tomorrow's date

date() のフォーマット文字

date() でよく使うフォーマット文字:

  • Y — 4桁の年:2024
  • m — 先頭にゼロを付けた月:01–12
  • d — 先頭にゼロを付けた日:01–31
  • H — 先頭にゼロを付けた24時間制の時刻
  • i — 先頭にゼロを付けた分
  • s — 秒
  • D — 曜日の短縮名:Mon
  • N — ISO の曜日:1=Mon、7=Sun

日付をフォーマットする

date() を使ってタイムスタンプをフォーマットします。

<?php
$ts = time();

echo date('Y-m-d', $ts);           // 2024-05-27
echo date('d/m/Y', $ts);           // 27/05/2024
echo date('D, d M Y H:i:s', $ts);  // Mon, 27 May 2024 14:30:00
echo date('c', $ts);               // ISO 8601: 2024-05-27T14:30:00+00:00
echo date('U', $ts);               // Unix timestamp (same as time())

mktime()

指定した日付と時刻の各要素からタイムスタンプを作成します。

<?php
// mktime(hour, min, sec, month, day, year)
$ts = mktime(0, 0, 0, 12, 25, 2024);  // Christmas 2024 midnight
echo date('Y-m-d', $ts);  // 2024-12-25

// Last day of month trick:
$lastDay = mktime(0, 0, 0, 3, 0, 2024);  // day 0 = last day of Feb
echo date('Y-m-d', $lastDay);  // 2024-02-29 (leap year)

strtotime()

strtotime() は、人間が読みやすい日付文字列をタイムスタンプに変換します。

<?php
echo strtotime('2024-12-25');       // timestamp
echo strtotime('next Monday');      // next Monday's timestamp
echo strtotime('+1 week');          // 7 days from now
echo strtotime('last day of this month');  // end of month
echo strtotime('2024-01-01 +3 months');   // April 1, 2024

strtotime による日付の計算

strtotime の相対表現を使って、相対的な日付を計算します。

<?php
$subscriptionStart = strtotime('2024-01-15');
$oneYearLater = strtotime('+1 year', $subscriptionStart);
$trialEnd = strtotime('+14 days');

echo date('Y-m-d', $oneYearLater);  // 2025-01-15
echo date('Y-m-d', $trialEnd);      // 14 days from today

// Days until event:
$event = strtotime('2024-12-31');
$daysLeft = (int) (($event - time()) / 86400);
echo "Days until NYE: $daysLeft";

タイムスタンプとデータベース

日付は ISO 文字列または Unix タイムスタンプとしてデータベースに保存します。

<?php
// Store as ISO string (recommended for readability):
$created_at = date('Y-m-d H:i:s');  // '2024-05-27 14:30:00'

// Store as Unix timestamp (fast integer comparison):
$created_ts = time();  // 1716800000

// Convert back:
$ts = strtotime($created_at);
$fmt = date('Y-m-d H:i:s', $created_ts);

date_create と date_format

date() と strtotime() に対応するオブジェクト指向の代替手段です。

<?php
$dt = date_create('2024-05-27');
echo date_format($dt, 'D, d M Y');  // Mon, 27 May 2024

date_modify($dt, '+30 days');
echo date_format($dt, 'Y-m-d');  // 2024-06-26

// Equivalent OO:
$dt2 = new DateTime('2024-05-27');
$dt2->modify('+30 days');
echo $dt2->format('Y-m-d');

checkdate()

checkdate() を使って、日付が実在するかどうかを検証します。

<?php
var_dump(checkdate(2, 29, 2024));  // true (leap year)
var_dump(checkdate(2, 29, 2023));  // false (not leap year)
var_dump(checkdate(13, 1, 2024));  // false (no month 13)
var_dump(checkdate(1, 31, 2024));  // true

ベンチマーク用の Microtime

microtime(true) を使うと、1秒未満の精度で実行時間を測定できます。

<?php
$start = microtime(true);

// Simulate work
for ($i = 0; $i < 100000; $i++) {}

$end = microtime(true);
$duration = ($end - $start) * 1000;  // milliseconds
echo sprintf('Took %.2f ms', $duration);

理解度チェック

PHP の time() 関数は何を返しますか。

まとめ:Unix タイムスタンプと date()

要点:

  • time() — 現在の Unix タイムスタンプ
  • date($format, $ts) — 任意のタイムスタンプをフォーマットします
  • mktime() — 日付の各要素からタイムスタンプを作成します
  • strtotime() — 人間が読みやすい日付を解析します
  • データベースへの保存には ISO 8601 形式を使用します
  • 高精度な時間計測には microtime(true) を使用します

よくある質問

「Unixタイムスタンプとdate()」レッスンは無料ですか?

はい。「Unixタイムスタンプとdate()」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「Unixタイムスタンプとdate()」で何を学びますか?

現在時刻をUnixタイムスタンプとして取得し、date()で整形します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Unixタイムスタンプとdate()」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Unixタイムスタンプとdate()
  2. DateTimeクラス
  3. DateIntervalによる日付の計算
  4. PHPのタイムゾーン
← PHP Academyに戻る