基本的な構文
使用するための構文 date_sub() 関数は以下のとおりです。
日付_サブ ( 日付時刻 $オブジェクト 、 日付間隔 $間隔 )ここ、 $オブジェクト それは 日付時刻 間隔を差し引きたいオブジェクト、および $間隔 それは 日付間隔 減算する間隔を指定するオブジェクト。を使用するには両方の引数が必要であることに注意してください。 date_sub() 正しく機能します。
DateInterval の操作
を使用するには、 date_sub() 関数を作成する必要があります。 日付間隔 元の日付/時刻から減算する時間を指定するオブジェクト。 日付間隔 オブジェクトは、 日付間隔 コンストラクタ。コンストラクターは、P1D (1 日)、P1M (1 か月)、P1Y (1 年)、P1DT1H (1 日と 1 時間) のような形式で間隔を指定する文字列パラメーターを受け取ります。
例
// 1日を減算します$間隔 = 新しい 日付間隔 ( 「P1D」 ) ; // 1か月を減算します
$間隔 = 新しい 日付間隔 ( 「P1M」 ) ;
// 1年を減算します
$間隔 = 新しい 日付間隔 ( 「P1Y」 ) ;
PHP date_sub() 関数の使用方法
を持ったら、 日付間隔 オブジェクトと組み合わせることができます。 日付時刻 新しい日時を計算するオブジェクト。現在の日付から 1 日を減算する例を次に示します。
$datetime = 新しい 日付時刻 ( ) ;
$間隔 = 新しい 日付間隔 ( 「P1D」 ) ;
日付_サブ ( $datetime 、 $間隔 ) ;
エコー $datetime -> フォーマット ( 「Y-m-d H:i:s」 ) ;
?>
ご覧のとおり、新しい日時は現在の日付より 1 日前です。
を使用して、DateTime オブジェクトから時、分、秒を減算することもできます。 date_sub() 関数。時間を減算するには、日付間隔を PT1H として渡すことができます。これは、1 時間を減算することを意味します。たとえば、次のコードを考えてみましょう。
$datetime = 新しい 日付時刻 ( 「2023-05-16 14:43:00」 ) ;
日付_サブ ( $datetime 、 新しい 日付間隔 ( 「PT1H」 ) ) ;
エコー $datetime -> フォーマット ( 「Y-m-d H:i:s」 ) ;
?>
これにより、DateTime オブジェクトから 1 時間が減算され、新しい値でオブジェクトが更新されます。新しい値には、 フォーマット() DateTime オブジェクトの関数。
例 1: 異なる間隔の減算
の date_sub() 関数を使用すると、日数だけでなくさまざまな間隔を減算できます。指定された日時から 2 時間 30 分を減算するシナリオを考えてみましょう。
$date = 新しい 日付時刻 ( 「2023-11-02 10:32:45」 ) ;
$間隔 = 新しい 日付間隔 ( 「PT1H15M」 ) ;
日付_サブ ( $date 、 $間隔 ) ;
エコー $date -> フォーマット ( 「Y-m-d H:i:s」 ) ;
?>
この例では、日付と時刻を表す DateTime オブジェクトを作成します。 「2023-11-02 10:32:45」 。また、 日付間隔 「PT1H15M」形式を使用して 1 時間 15 分の期間を表すオブジェクト。次に、 date_sub() 日時から間隔を引く関数。
例 2: 複数の間隔の減算
を使用することもできます。 date_sub() DateTime オブジェクトから複数の間隔を減算する関数。構文は単純です。減算する間隔ごとに新しい DateInterval オブジェクトを作成し、それらをすべて date_sub() 配列として機能します。
$intervals = 配列 (
新しい 日付間隔 ( 「P1Y」 ) 、
新しい 日付間隔 ( 「P6M」 ) 、
新しい 日付間隔 ( 「P3D」 )
) ;
$datetime = 新しい 日付時刻 ( ) ;
フォーリーチ ( $intervals として $間隔 ) {
日付_サブ ( $datetime 、 $間隔 ) ;
}
エコー $datetime -> フォーマット ( 「Y-m-d H:i:s」 ) ;
?>
この例では、日付から 1 年、6 か月、3 日を減算しました。
例 3: タイムゾーンを使用した date_sub()
使用する際に注意していただきたいことが一つあります date_sub() 機能は、あなたの国のタイムゾーンに影響を与える可能性があるということです。 日付時刻 物体。デフォルトでは、 日付時刻 オブジェクトはサーバーのタイムゾーンを使用します。ただし、別のタイムゾーンを使用したい場合は、次のコマンドを使用して明示的に設定できます。 setTimezone() 方法。
$datetime = 新しい 日付時刻 ( '今' 、 新しい 日付時刻ゾーン ( 「アメリカ/ニューヨーク」 ) ) ;
$間隔 = 新しい 日付間隔 ( 「P1D」 ) ;
日付_サブ ( $datetime 、 $間隔 ) ;
エコー $datetime -> フォーマット ( 「Y-m-d H:i:s」 ) ;
?>
この例では、タイムゾーンを America/New_York に設定し、日時から 1 日を減算します。
を使用して間隔を減算する場合、 date_sub() 関数を使用する場合、結果の日付が無効になった場合は自動的に調整されることに注意してください。
結論
の date_sub() PHP の関数は、DateTime オブジェクトから間隔を減算する便利な方法を提供します。この関数を使用すると、開発者は、指定された日時から日、時間、分、または複雑な間隔を引くなどの操作を簡単に実行できます。の date_sub() 関数は、日付計算を処理する際の柔軟性と正確さを提供するため、PHP アプリケーションで日付と時刻を操作するための貴重なツールになります。