strftime が生成した日付/時刻をパースする

# strptime

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

strptime — strftime() が生成した日付/時刻をパースする

警告

この関数は PHP 8.1.0 で 非推奨になります。この関数に頼らないことを強く推奨します。

### 説明

#[\Deprecated]
function strptime(string `$timestamp`, string `$format`): array|false

strptime() は `timestamp` をパースした結果を配列で返します。エラー時には false を返します。

月名や曜日、そしてその他の言語依存な文字列は setlocale() (LC_TIME) で設定された現在の ロケールを考慮して返します。

### パラメータ

`timestamp` (string)

  パースする文字列（例: strftime() の戻り値）。

`format` (string)

  `timestamp` で使用されているフォーマット （例: strftime() で使用されていたものと同じ）。 strftime() で使えるオプションの中には、 strptime() では何の影響を及ぼさないものがあることに注意しましょう。 実際にサポートする範囲がどのようになるのかは、 使っている OS と C ライブラリに依存します。

  フォーマットオプションについての詳細は strftime() のページを参照ください。

### 戻り値

成功した場合は配列、失敗した場合に `false` を返します。

配列で返されるパラメータ
パラメータ | 説明
--- | ---
`"tm_sec"` | 分未満の秒数 (0-61)
`"tm_min"` | 時間未満の分数 (0-59)
`"tm_hour"` | 0 時以降の時間数 (0-23)
`"tm_mday"` | 月内の日数 (1-31)
`"tm_mon"` | 1 月から数えた月数 (0-11)
`"tm_year"` | 1900 年以降の年
`"tm_wday"` | 日曜日からの日数 (0-6)
`"tm_yday"` | 1 月 1 日からの日数 (0-365)
`"unparsed"` | `timestamp` の中で、指定された `format` で判断できなかった部分

### 変更履歴

バージョン | 説明
--- | ---
8.1.0 | この関数は、推奨されなくなりました。 date_parse_from_format() (ロケールに依存しないパースを行う場合) または、 IntlDateFormatter::parse() (ロケールに依存するパースを行う場合) を使って下さい。

### 例

例1 strptime() の例

    <?php
    $format = '%d/%m/%Y %H:%M:%S';
    $strf = strftime($format);

    echo "$strf\n";

    print_r(strptime($strf, $format));

上の例の出力は、 たとえば以下のようになります。

    03/10/2004 15:54:19

    Array
    (
        [tm_sec] => 19
        [tm_min] => 54
        [tm_hour] => 15
        [tm_mday] => 3
        [tm_mon] => 9
        [tm_year] => 104
        [tm_wday] => 0
        [tm_yday] => 276
        [unparsed] =>
    )

### 注意

> 注意: この関数は Windows 環境にはまだ実装されていません。

> 注意:

> 内部では、この関数はシステムの C ライブラリ関数 `strptime()` をコールしています。 このライブラリ関数は、OS によって挙動が異なることがあります。 date_parse_from_format() はこの問題の影響を受けないので、 date_parse_from_format() を使うことを推奨します。

> 注意:

> `"tm_sec"` には、うるう秒も組み込まれています (現在は、年間 2 秒まで)。うるう秒についての詳細な情報は » Wikipedia の記事 を参照ください。

### 参考

- IntlDateFormatter::parse() - 文字列をパースしてタイムスタンプにする
- DateTime::createFromFormat() - 指定した書式で時刻文字列をパースする
- checkdate() - グレゴリオ暦の日付/時刻の妥当性を確認します
- strftime() - ロケールの設定に基づいてローカルな日付・時間をフォーマットする
- date_parse_from_format() - 指定した書式でフォーマットされた日付についての情報を取得する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open