Möchten Sie das Datum Zeit Feld Datum Optionen in WPForms anpassen? Das Datum / Zeit-Feld enthält zwei Format-Optionen für das Datum Selector: Date Picker, die den Benutzer mit einem Kalender, oder Datum Dropdown bietet.
Mit der Veröffentlichung der Version 1.6.3, WPForms gibt Ihnen Optionen innerhalb der Form Builder zu Tage zu begrenzen und sogar deaktivieren Vergangenheit Daten sowie Stunden begrenzen. Wenn dies alles ist, was Sie tun müssen, lesen Sie bitte diese Dokumentation.
Dieses Tutorial konzentriert sich mehr auf die Anpassung des Datums-Dropdown-Feldes und die Berechnung von Datumsblöcken für den Date Picker.
Es ist wichtig, daran zu denken, dass, wenn Sie einen der Codeschnipsel in diesem Dokument verwenden, die Formularerstellungsoptionen für die Begrenzung ausgeschaltet werden sollten. Weitere Informationen zu den integrierten Optionen für die Begrenzung der Daten finden Sie in dieser Dokumentation.
Erstellen des Formulars
Bevor wir irgendwelche Snippets hinzufügen, müssen Sie Ihr Formular erstellen und Ihre Felder hinzufügen. Da sich dieses Tutorial auf das Dropdown-Feld "Datum" bezieht, müssen Sie mindestens ein Datumsfeld hinzufügen.
Wenn Sie Hilfe bei der Erstellung Ihres Formulars benötigen, lesen Sie bitte diese Anleitung.
Sobald Sie Ihre Datumsfelder hinzugefügt haben, vergewissern Sie sich, dass Sie die Dropdown-Liste Typ zu Datum ausgewählt haben. Sie können den Datumstyp festlegen, indem Sie auf die erweiterten Optionen des Formularfelds klicken.

Anpassen des Datumsfeldes
Um das Datumsfeld anzupassen, müssen Sie einen der nachstehenden Codeschnipsel zu Ihrer Website hinzufügen.
Wenn Sie Hilfe brauchen, um zu lernen, wie Sie Code-Snippets zu Ihrer Website hinzufügen, lesen Sie bitte dieses Tutorial.
Für einige der nachstehenden Codeschnipsel ist die Verwendung bestimmter Formular-ID- und Feld-ID-Informationen erforderlich.
Verwendung von Snippets im Dropdown-Menü "Datum
Begrenzung der Anzahl der Tage in der Dropdown-Liste auf den Monat
Damit das Feld Tage mit der Anzahl der für den jeweiligen Monat verfügbaren Tage übereinstimmt, verwenden Sie dieses Snippet.
/**
* Limit the days dropdown to match how many days are available for the selected month.
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_days_dropdown_match_month( ) {
?>
<script type="text/javascript">
var date = new Date();
var month = date.getMonth();
var year = date.getFullYear();
var totalDays = 31; // Default day amount
jQuery(function($){
$( 'select[id$="-month"]' ).on( 'change', function(){
month = $(this).val();
totalDays = daysInMonth(month, year);
$(this).parent().find( 'select[id$="-day"] option:not(:first-child)').each(function(){
$(this).remove();
});
for (var i = 1; i <= totalDays; i++) {
$(this).parent().find( 'select[id$="-day"]' ).append($( "<option></option>" ).attr( "value", i).text(i));
}
});
$( 'select[id$="-year"]' ).on( 'change', function(){
year = $(this).val();
totalDays = daysInMonth(month, year);
$(this).parent().find( 'select[id$="-day"] option:not(:first-child)').each(function(){
$(this).remove();
});
for (var i = 1; i <= totalDays; i++) {
$(this).parent().find('select[id$="-day"]').append($( "<option></option>" ).attr( "value", i).text(i));
}
});
});
function daysInMonth (month, year) {
return new Date(year, month, 0).getDate();
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_days_dropdown_match_month', 30 );
Einschränkung von Monaten, Tagen und Jahren in der Datumsauswahl
Die folgenden Ausschnitte aktualisieren die Dropdown-Felder so, dass nur die Monate 5-12 (Mai-Dezember), die Tage 20-31 und die Jahre 2020-2021 angezeigt werden. Sie können die Felder nach Bedarf ändern.
Es gibt zwei verschiedene Möglichkeiten, dies zu tun:
- Alle Datums-Dropdown-Felder innerhalb eines bestimmten Formulars
- Ein bestimmtes Datums-Dropdown innerhalb eines bestimmten Formulars.
Alle Datums-Dropdown-Felder innerhalb eines bestimmten Formulars
Der folgende Ausschnitt gilt nur für das Formular ID 10.
/**
* Filters labels and options within the date field’s dropdown format.
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_datetime_date_dropdowns( $args, $form_id, $field ) {
$form_id = (int) $form_id;
// Only apply if the form's ID is 10
if ( $form_id === 10 ) {
// Set the lower and upper limits for each date dropdown
$args[ 'months' ] = range( 5, 12 );
$args[ 'days' ] = range( 20, 31 );
$args[ 'years' ] = range( 2024, 2025 );
}
return $args;
}
add_filter( 'wpforms_datetime_date_dropdowns', 'wpf_dev_datetime_date_dropdowns', 10, 3 );
Ausrichtung auf ein bestimmtes Datums-Dropdown innerhalb eines bestimmten Formulars
Die folgenden Angaben gelten für das Dropdown-Datum mit der Feld-ID 3 im Formular ID 10.
/**
* Filters labels and options within the date field’s dropdown format.
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_datetime_date_dropdowns( $args, $form_id, $field ) {
$form_id = (int) $form_id;
// Only apply if the form's ID is 10 and field ID 3
if ( $form_id === 10 && $field['id'] == 3) {
// Set the lower and upper limits for each date dropdown
$args[ 'months' ] = range( 5, 12 );
$args[ 'days' ] = range( 20, 31 );
$args[ 'years' ] = range( 2024, 2025 );
}
return $args;
}
add_filter( 'wpforms_datetime_date_dropdowns', 'wpf_dev_datetime_date_dropdowns', 10, 3 );
Start des Datums-Dropdowns von 'heute'
In Ihrem Datums-Dropdown können Sie Monat, Tag und Jahr automatisch mit dem heutigen Monat, Tag und Jahr beginnen lassen, indem Sie dieses Snippet verwenden.
/**
* Select from today's date going forward within the range limit specified below
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_datetime_date_dropdowns( $args, $form_id, $field ) {
if( $form_id != 143 ) {
return $args;
}
// Set the lower and upper limits for each date dropdown
$args[ 'months' ] = range( date('m'), 12 );
$args[ 'days' ] = range( date('d'), 31 );
$args[ 'years' ] = range( date('Y'), 2030 );
return $args;
}
add_filter( 'wpforms_datetime_date_dropdowns', 'wpf_dev_datetime_date_dropdowns', 10, 3 );
Snippets in der Datumsauswahl verwenden
Deaktivierung vergangener Daten und Anzeige nur der nächsten 31 Tage
In diesem Schnipsel werden wir alle vergangenen Daten deaktivieren und nur die Auswahl von bis zu 31 Tagen ab dem aktuellen Datum für die Formular-ID zulassen 1137
und das Feld ID 14
. Denken Sie daran, diese IDs so zu ändern, dass sie Ihren eigenen Formular- und Feld-IDs entsprechen. Wenn Sie nicht sicher sind, wo Sie diese IDs finden können, Bitte lesen Sie diese Anleitung.
/**
* Disable past dates, allow for selection for today + the next 31 days
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_limit_date_picker() {
?>
<script type="text/javascript">
var d = new Date();
window.wpforms_1137_14 = window.wpforms_1137_14 || {};
window.wpforms_1137_14.datepicker = {
disableMobile: true,
// Don't allow users to pick dates less than 1 days out
minDate: d.setDate(d.getDate()),
maxDate: d.setDate(d.getDate() + 31),
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_limit_date_picker', 10 );
Daten von gestern, heute und morgen anzeigen
Mit dem neuen Date().fp_incr(-1) können Sie ganz einfach steuern, wie viele Tage minDate und maxDate angezeigt werden, indem Sie einfach die Zahl erhöhen. Die Verwendung des negativen Symbols (-) vor der Zahl bedeutet, dass diese Tage in der Vergangenheit liegen.
Da unser Formular nur mit dem gestrigen Tag beginnen soll, beginnen wir mit dem minDate, das nur die (-1) zulässt, und enden mit der (1) (so dass es heute und morgen umfasst) für das maxDate
/**
* Allow date picker yesterday, today, and tomorrow
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_limit_date_picker() {
?>
<script type="text/javascript">
window.wpforms_datepicker = {
disableMobile: true,
// Don't allow users to pick past dates
minDate: new Date().fp_incr(-1), // 1 day in the past
// Don't allow users to pick any more than today
maxDate: new Date().fp_incr(1) // 1 day in the future
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_limit_date_picker', 10 );
Termine ab dem nächsten Tag für die Terminauswahl anzeigen
Sie können einfach dieses Codeschnipsel verwenden, das alle vergangenen Tage (einschließlich heute) ausschließt.
Ändern Sie einfach das +1), so dass Sie die Auswahl auf beliebig viele Tage im Voraus beschränken können.
/**
* Show dates from the next day and onwards
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_limit_date_picker() {
?>
<script type="text/javascript">
var d = new Date();
window.wpforms_datepicker = {
disableMobile: true,
// Don't allow users to pick dates less than 1 days out
minDate: d.setDate(d.getDate() + 1),
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_limit_date_picker', 10 );
Sperrung bestimmter Datumsbereiche für die Datumsauswahl
Um bestimmte Datumsbereiche innerhalb der Datumsauswahl auszublenden, verwenden Sie dieses Snippet.
/**
* Limit the dates available in the Date Time date picker: Block out certain date ranges
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_limit_date_picker() {
?>
<script type="text/javascript">
var d = new Date();
window.wpforms_datepicker = {
disableMobile: true,
// Don't allow users to pick specific range of dates
disable: [
{
from: "2024-12-24",
to: "2024-12-26"
},
{
from: "2024-12-31",
to: "2025-01-01"
}
]
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_limit_date_picker', 10 );
Begrenzen Sie, wie weit in der Zukunft die Benutzer die Daten in der Datumsauswahl auswählen können
Wenn Sie das zukünftige Datum, das Benutzer in der Datumsauswahl auswählen können, einschränken möchten, verwenden Sie dieses Codeschnipsel.
/**
* Don't allow date to be selected after maxDate
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_limit_date_picker() {
?>
<script type="text/javascript">
window.wpforms_datepicker = {
disableMobile: true,
// Don't allow users to pick past dates
minDate: new Date(),
// Don't allow users to pick dates after Dec 31, 2025
maxDate: new Date( '2025-12-31' )
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_limit_date_picker', 10 );
Alle vergangenen Tage und Montage in der Datumsauswahl ausschließen
Um alle vergangenen Tage und zukünftigen Montage zu begrenzen, verwenden Sie dieses Snippet.
/**
* Don't allow users to pick Mondays
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_limit_date_picker() {
?>
<script type="text/javascript">
window.wpforms_datepicker = {
disableMobile: true,
// Don't allow users to pick past dates
minDate: new Date(),
// Don't allow users to pick Mondays
enable: [
function(dateObj){
return dateObj.getDay() !== 1;
}
]
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_limit_date_picker', 10 );
Meldung anzeigen, wenn das aktuelle Datum ausgewählt ist
In diesem Beispiel soll eine Popup-Meldung angezeigt werden, wenn das aktuelle Datum ausgewählt wird.
/**
* Display pop up message when current date is selected
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_check_date() {
?>
<script type="text/javascript">
// Only display the message if the form ID is 323 and the field ID is 4
window.wpforms_323_4 = window.wpforms_323_4 || {};
window.wpforms_323_4.datepicker = {
mode: "single",
onClose: function(selectedDates, dateStr, instance) {
var today = new Date();
if (selectedDates[0].toLocaleDateString("en-US") == today.toLocaleDateString("en-US")) {
alert( 'Custom Message: You have selected todays date' );
this.clear();
}
}
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_check_date', 10 );
Einen bestimmten Wochentag deaktivieren
In diesem Beispiel wollen wir die Sonntage in unserer Datumsauswahl mit diesem Snippet vollständig deaktivieren.
/**
* Disable a specific day of the week
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_limit_date_picker_disable_specific_weekday() {
?>
<script type="text/javascript">
var d = new Date();
// Only apply to the form ID 420 and the field ID 1
window.wpforms_420_1 = window.wpforms_420_1 || {};
window.wpforms_420_1.datepicker = {
disableMobile: true,
// Don't allow users to pick specific day of the week
disable: [
function(date) {
// return true to disable
// 1 = Monday; 2 = Tuesday; 3 = Wednesday; 4 = Thursday; 5 = Friday; 6 = Saturday; 0 = Sunday
return (date.getDay() === 0);
}
]
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_limit_date_picker_disable_specific_weekday', 10 );
In dem Ausschnitt wird durch return (date.getDay() === 0); nur der Sonntag deaktiviert. Jeder Tag wird durch eine bestimmte Zahl dargestellt.
- 1 = Montag
- 2 = Dienstag
- 3 = Mittwoch
- 4 = Donnerstag
- 5 = Freitag
- 6 = Samstag
- 7 = Sonntag
Suchen Sie einfach die numerische Darstellung für Ihren spezifischen Tag und aktualisieren Sie das Snippet, damit es Ihrem Wunschtag entspricht.
window.wpforms_420_1 steht für die Formular-ID(420) und die Feld-ID für unseren Date Picker(_1). Sie müssen diese beiden IDs aktualisieren, damit sie mit Ihrer eigenen Formular-ID und Feld-ID übereinstimmen.
Hilfe bei der Suche nach Ihren Formular- und Feld-ID-Nummern finden Sie in dieser Anleitung.
Den Starttag des Kalenders ändern
Um den Tag in der Datumsauswahl so zu ändern, dass er den Beginn der Woche anzeigt, verwenden Sie dieses Snippet. Denken Sie daran, dass der Montag die Nummer eins darstellt und die Wochentage in numerischer Reihenfolge fortgesetzt werden.
/**
* Change the start day of the week
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_set_start_day() {
?>
<script type="text/javascript">
window.wpforms_datepicker = {
disableMobile: true,
"locale": {
// Enter the number for the day you want the week to start
// 1 = Monday; 2 = Tuesday; 3 = Wednesday; 4 = Thursday; 5 = Friday; 6 = Saturday; 7 = Sunday
"firstDayOfWeek": 1 // start week on Monday
}
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_set_start_day', 10 );
Deaktivieren zukünftiger Termine
Mit diesem Snippet wird das maxDate auf das heutige Datum (aktuell) gesetzt, so dass der Benutzer keine zukünftigen Daten auswählen kann.
/**
* Disable future dates
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_limit_date_picker() {
?>
<script type="text/javascript">
window.wpforms_datepicker = {
disableMobile: true,
// Don't allow users to pick past dates
maxDate: new Date(),
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_limit_date_picker', 10 );
Spezifische Formular-ID und Feld-ID in der Datumsauswahl anvisieren
Wenn Sie die Datumsauswahl verwenden, können Sie ein einzelnes Formular oder ein bestimmtes Datumsfeld in einem bestimmten Formular auswählen.
In den Beispielen unten sehen Sie window.wpforms_21_1. Dabei steht _21 für die Formular-ID und _1 für die Feld-ID.
Wenn Sie Hilfe bei der Suche nach Ihren Formular- und Feld-ID-Nummern benötigen, lesen Sie bitte diese Anleitung.
Hier sind ein paar Codeschnipsel. Der erste ermöglicht eine Auswahl nur der letzten 30 Tage:
/**
* Only allow for a selection of only the past 30 days
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_limit_date_picker() {
?>
<script type="text/javascript">
window.wpforms_21_1 = window.wpforms_21_1 || {};
window.wpforms_21_1.datepicker = {
disableMobile: true,
// Don't allow users to pick more than 30 days in the past and exclude future dates
minDate: new Date().fp_incr(-30)
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_limit_date_picker', 10 );
Das nächste Codeschnipsel ermöglicht die Auswahl der letzten 30 Tage und von "heute":
/**
* Only allow for a selection of the past 30 days and "today"
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_limit_date_picker() {
?>
<script type="text/javascript">
window.wpforms_21_1 = window.wpforms_21_1 || {};
window.wpforms_21_1.datepicker = {
disableMobile: true,
// Don't allow users to pick more than 30 days in the past
minDate: new Date().fp_incr(-30),
maxDate: "today"
}
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_limit_date_picker', 10 );
Beschränkung auf einen einzigen Tag für den laufenden Monat
In diesem Beispiel werden wir nur Termine für einen einzigen Tag im aktuellen Monat annehmen.
/**
* Limit to 1 single day for the current month only.
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_one_day_current_month( ) {
?>
<script type="text/javascript">
window.wpforms_datepicker = {
disableMobile: true,
disable: [
function(date) {
var currentDate = new Date();
var currentMonth = currentDate.getMonth();
var currentYear = currentDate.getFullYear();
var selectedMonth = date.getMonth();
var selectedYear = date.getFullYear();
if (selectedMonth !== currentMonth || selectedYear !== currentYear) {
return false;
}
var day = date.getDay();
var firstDayOfMonth = new Date(selectedYear, selectedMonth, 1).getDay();
var offset = (day >= firstDayOfMonth) ? (day - firstDayOfMonth) : (day + 7 - firstDayOfMonth);
var secondThursday = new Date(selectedYear, selectedMonth, offset + 8);
if (date.getDate() === secondThursday.getDate() && day === 4) {
return false;
}
return true;
}
]
};
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_one_day_current_month', 30 );
In diesem Beispiel legen wir dynamisch ein Mindestdatum für ein zweites Datumsauswahlfeld fest und stellen sicher, dass es mindestens 21 Tage nach dem ersten ausgewählten Datum liegt.
/**
* Add 21 days to the first date selection to block these days from the second selection
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options/
*/
function wpf_dev_block_days_date_selection( ) {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$( "#wpforms-1277-field_19" ).flatpickr({
dateFormat: "m/d/Y",
onClose: function( selectedDates, dateStr, instance ) {
if ( selectedDates.length > 0 ) {
var minSecondDate = new Date( selectedDates[0] );
// Adding 21 days to the selected 1st date
minSecondDate.setDate( minSecondDate.getDate() + 21 );
$( "#wpforms-1277-field_20" ).flatpickr({
minDate: minSecondDate,
dateFormat: "m/d/Y"
});
}
}
});
});
</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_block_days_date_selection', 30 );
Übersetzen von Datums- und Zeituntertiteln
Um die Unteretiketten "Datum" und "Uhrzeit" im Feld Datum/Uhrzeit zu übersetzen, können Sie dieses Codeschnipsel verwenden:
``/**
* Translate Date and Time sublabels in the Date/Time field
*
* @link https://wpforms.com/developers/customize-the-date-time-field-date-options
*/
function custom_translate_date_time_sublabels( $properties, $field, $form_data ) {
// Check if the field is of type 'date-time'
if ( 'date-time' === $field['type'] ) {
// Change the sublabel for the date field
if ( isset( $properties['inputs']['date']['sublabel']['value'] ) ) {
$properties['inputs']['date']['sublabel']['value'] = __( 'Your Translated Date Label');
}
// Change the sublabel for the time field
if ( isset( $properties['inputs']['time']['sublabel']['value'] ) ) {
$properties['inputs']['time']['sublabel']['value'] = __( 'Your Translated Time Label');
}
}
return $properties;
}
add_filter( 'wpforms_field_properties', 'custom_translate_date_time_sublabels', 10, 3 );
So verwenden Sie dieses Snippet:
- Ersetzen Sie "Your Translated Date Label" durch die gewünschte Übersetzung für "Date".
- Ersetzen Sie 'Your Translated Time Label' durch Ihre gewünschte Übersetzung für "Time".
Zum Beispiel, um die Etiketten ins Spanische zu übersetzen:
$properties['inputs']['date']['sublabel']['value'] = __( 'Fecha');
$properties['inputs']['time']['sublabel']['value'] = __( 'Tiempo');

Eine letzte Erinnerung: Bitte denken Sie daran, dass Sie bei der Verwendung eines der Codeschnipsel in diesem Dokument die Formularerstellungsoptionen für die Begrenzung deaktivieren sollten. Weitere Informationen zu den integrierten Optionen für die Begrenzung der Daten finden Sie in dieser Dokumentation.
Und das ist alles, was Sie brauchen, um die Datumsauswahl anzupassen! Möchten Sie die Datumsauswahl so anpassen, dass sie eine Reihe von Daten oder mehrere Daten zulässt? Probieren Sie unser Tutorial zum Thema Wie man einen Datumsbereich oder mehrere Daten in der Datumsauswahl zulässt aus.