PHPで日時から秒を減算する方法


  1. DateTimeオブジェクトを使用した方法:

    $datetime = new DateTime('2024-02-17 10:30:00');
    $seconds_to_subtract = 60; // 減算する秒数
    $datetime->modify("-$seconds_to_subtract seconds");
    echo $datetime->format('Y-m-d H:i:s');

    出力: 2024-02-17 10:29:00

    DateTimeオブジェクトを作成し、modify()メソッドを使用して指定した秒数を減算します。最後にformat()メソッドを使用してフォーマットされた日時を取得します。

  2. strtotime関数を使用した方法:

    $datetime = '2024-02-17 10:30:00';
    $seconds_to_subtract = 60; // 減算する秒数
    $timestamp = strtotime($datetime);
    $new_timestamp = $timestamp - $seconds_to_subtract;
    $new_datetime = date('Y-m-d H:i:s', $new_timestamp);
    echo $new_datetime;

    出力: 2024-02-17 10:29:00

    strtotime()関数を使用して日時をタイムスタンプに変換し、指定した秒数を減算します。最後にdate()関数を使用してフォーマットされた日時を取得します。

  3. DateTimeImmutableオブジェクトを使用した方法 (PHP 7以降):

    $datetime = new DateTimeImmutable('2024-02-17 10:30:00');
    $seconds_to_subtract = 60; // 減算する秒数
    $new_datetime = $datetime->sub(new DateInterval("PT{$seconds_to_subtract}S"));
    echo $new_datetime->format('Y-m-d H:i:s');

    出力: 2024-02-17 10:29:00

    DateTimeImmutableオブジェクトを作成し、sub()メソッドを使用して指定した秒数を減算します。元のオブジェクトは変更されず、減算結果が新しいオブジェクトとして返されます。

これらの方法を使用することで、PHPで日時から秒を減算することができます。どの方法を選ぶかは、プロジェクトの要件や好みによります。