<html lang="ja-jp" dir="ltr"><head></head><body>### [同じフォームで2つの日付を比較する方法](https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/)

**公開日:** 2021年8月25日
**著者:** エディトリアルチーム

**抜粋:** このチュートリアルでは、PHPスニペットを使用して同じフォーム内の2つの日付を比較する方法を説明します。

**コンテンツ:**

## はじめに

同じフォーム内で2つの日付を比較したいですか？ 小さなPHPスニペットを使用すると、2つの日付を取得して同じフォーム内で比較できます。このチュートリアルでは、同じフォーム内の2つの日付ピッカーを取得するPHPスニペットを使用します。

## フォームの作成

まず、フォームを設定する必要があります。フォームを作成し、**日付**形式に設定された2つの**日付**フォームフィールドを含むフィールドを追加します。

![フォームを作成し、2つの日付フィールドを含むフィールドを追加します](https://wpforms.com/wp-content/uploads/2021/08/wpforms-compare-dates-create-form.jpg)

これらのフィールドを追加したら、**高度な設定**タブでそれらを**日付ピッカー**に設定してください。

![両方のフィールドで日付ピッカーを使用するように日付フィールドを設定します](https://wpforms.com/wp-content/uploads/2021/08/wpforms-select-date-picker-compare-dates.jpg)

フォームの作成にヘルプが必要な場合は、[こちらのドキュメントをご覧ください](https://wpforms.com/docs/creating-first-form/ "最初のフォームの作成方法")。

## 2つの日付を比較するスニペットの追加

スニペットを追加する前に、フォームIDと、フォームに追加した**日付**フィールドの両方のフィールドIDを見つける必要があります。

これらのIDの検索にヘルプが必要な場合は、[こちらのチュートリアルをご覧ください](https://wpforms.com/developers/how-to-locate-form-id-and-field-id/ "フォームIDとフィールドIDの検索方法")。

これらのIDを取得したら、次のスニペットをサイトに追加できます。

```

/**
 * 同じフォームで2つの日付を比較します。
 *
 * @link  https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/
 */

function wpf_dev_compare_dates( $fields, $entry, $form_data ) {
      
    // オプションで、特定のフォームに制限できます。以下では、出力は
    // フォーム #731 に制限されます。
    if ( absint( $form_data[ 'id' ] ) !== 731 ) {
        return $fields;
    }
      
	// 3 は日付1フィールドのIDです
	$date_1 = $fields[3][ 'unix' ]; 
	
	// 4 は日付2フィールドのIDです
	$date_2 = $fields[4][ 'unix' ]; 
	
	// 日付2が時間1以前または同じ場合
	if ( $date_2 &lt;= $date_1 ) {
		$fields[4][ 'error' ] = esc_html__( 'The pickup date should not be earlier than the order date.', 'plugin-domain' );
	}
	
	return $fields;
}
add_action( 'wpforms_process', 'wpf_dev_compare_dates', 10, 3 );
```

カスタムスニペットをサイトに追加する場所や方法がわからない場合は、[こちらのチュートリアルをご覧ください](https://wpforms.com/developers/how-to-add-custom-php-or-javascript-for-wpforms/ "WPForms用のカスタムPHPまたはJavaScriptの追加方法")。

スニペットの仕組みは、フォームID **731**でのみ実行され、次にフォームに追加した**日付**フィールドID **3**と**日付**フィールドID **4**を探し、それらを変数 $date\_1 と $date\_2 に割り当てて、$date\_2 が $date\_1 以下であるかどうかを確認します。もしそうであれば、この日付は他の日付より早くならないことを示すエラーが2番目の**日付**フィールドの上に表示されます。

![スニペットが2つの日付を比較する際に失敗した場合、エラーメッセージが上に表示されます](https://wpforms.com/wp-content/uploads/2021/08/wpforms-comparing-two-dates.jpg)

これで、同じフォーム内で2つの日付を比較するために必要なすべてが揃いました！ フォームに年齢制限の機能を提供したいですか？ [日付ピッカーフォームフィールドに年齢制限を提供する方法](https://wpforms.com/developers/how-to-provide-an-age-restriction-on-the-datepicker-form-field/ "日付ピッカーフォームフィールドに年齢制限を提供する方法") のチュートリアルをご覧ください。

## 関連

アクションリファレンス: [wpforms\_process](https://wpforms.com/developers/wpforms_process/ "wpforms_processアクションの使用")

**カテゴリ:** チュートリアル

**タグ:** PHP

---</body></html>