Funktionen sind kleine autonome Programme, die als Parameter übergebene Daten verarbeiten und den berechneten Funktionswert als Ergebnis zurückgeben. Funktionen kannst Du benutzen, um Variablenwerte zu berechnen oder Bot-Antworten zu konditionieren. Hier findest Du ein Verzeichnis von in dem Bot-Builder unterstützten Funktionen mit Anwendungsbeispielen (die meiste Beispiele zeigen die Anwendung in Bedingungen).
length($string$)
Gibt die Länge der Eingabezeichenkette $string$ zurück.
- Beispiel: length ($pw$) == 8
die Bedingung prüft, ob die Länge des Passwortes $pw$ 8 Zeichen beträgt
substr ($string$, $start$, $length$)
Gibt den Teil von der Eingabezeichenkette $string$ zurück, der durch die Parameter $start$ (Integer) und $length$ (Integer) definiert wurde. $string$ darf vom Datentyp „Text“, „Wort“ oder „Zahl“ sein.
- Beispiel:
substr ($profile_number$, 0, 2) == "49"
prüft, ob die Profilnummer des/der Nutzer:in mit „49“ anfängt
round($number$, $precision$)
Rundet den Parameter $number$ auf die mit $precision$ angegebene Anzahl von Nachkommastellen. $precision$ kann dabei auch null oder negativ sein. So wird bei einer Stellenzahl -1 auf volle Zehner gerundet.
- Beispiel: round ($age$, 0) >= 18
prüft, ob der gerundete Alter $age$ ist gleich oder größer als 18
floor($number$)
Liefert die nächste ganze Zahl, die kleiner oder gleich dem Parameter $number$ ist.
- Beispiel: $number$ – floor($number$) == 0
die zusammengesetzte Bedingung prüft, ob $number$ eine ganze Zahl ist
ceil($number$)
Liefert die nächste ganze Zahl, die größer oder gleich dem Parameter $number$ ist.
- Beispiel: ceil ($number$) == 1
prüft, ob der aufgerundete Wert von $number$ gleich 1 ist
abs($number$)
Liefert den Betrag des Wertes $number$ ohne Vorzeichen.
- Beispiel: abs($number$) < 10
prüft, ob Absolutwert von $number$ kleiner als 10 ist
in_array($string$,$array$)
Prüft ob der Wert $string$ in der Sammlung $array$ vorkommt und gibt 1 im Erfolgsfall zurück.
- Beispiel:
in_array ("red", $preferred_colors$)
prüft, ob die Farbe “red“ wurde in der Sammlung $favourite_colors$ bereits gespeichert
preg_match("/$pattern$/", $string$)
Führt eine Suche mit einem regulären Ausdruck $pattern$ in der Eingabezeichenkette $string$ durch. Gibt 1 zurück, falls eine Übereinstimmung zwischen $pattern$ und $string$ gefunden wurde, 0, falls nicht. Bitte, beachte, dass die Regex soll von Zeichen „/ /“ eingeschlossen werden („/$pattern$/“).
- Beispiel:
preg_match("/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,5}$/", $email$) == 1
prüft, ob $email$ ein valides Format hat
Zeitliche Funktionen mit Anwendungsbeispielen in Bedingungen
now()
Gibt den aktuellen Unix-Timestamp/Zeitstempel (die Anzahl der Sekunden seit dem 01. Januar 1970 00:00:00 UTC) zurück
- Beispiel: now() <= 1541526600
prüft, ob JETZT ist kleiner gleich (Timestamp von) 11/06/2018 5:50pm (UTC)
today()
Gibt Unix Zeitstempel von 0 Uhr des heutigen Datums in der aktuellen Channel-Zeitzone in Sekunden (die Zeitzone des Channels kann in Einstellungen festgelegt werden) zurück. In Bedingungen ist ein Vergleich mit dem Datum im Format TT.MM.JJJJ zugelassen.
- Beispiel: today() == 01.01.2021
prüft, ob heute 01.01.2020 ist
now() – today ()
Gibt die aktuelle Uhrzeit in der Channel Zeitzone (in Sekunden) zurück.
- Beispiel: now() – today() < 43200
prüft, ob es Vormittag ist (12 Uhr in Sekunden = 43200)
to_seconds($time$)
Wandelt die Uhrzeit $time$ in Sekunden um.
- Beispiel:
now()-today() < to_seconds("12:00")
prüft, ob jetzt früher als 12 Uhr ist
yesterday()
Gibt Zeitstempel von Uhr dem gestrigen Datum zurück (now() – 24*3600). In Bedingungen ist ein Vergleich mit dem Datum im Format TT.MM.JJJJ zugelassen.
- Beispiel: yesterday() == 31.12.2020
prüft, ob gestern 31.12.2020 war
tomorrow()
Gibt Zeitstempel des morgigen Datums (now()+24*3600) zurück. In Bedingungen ist ein Vergleich mit dem Datum im Format TT.MM.JJJJ zugelassen.
- Beispiel: tomorrow() == 02.01.2020
prüft, ob morgen 02.01.2020 ist
weekday()
Gibt den aktuellen Wochentag zurück (1-7 für Mo-So)
- Beispiel: weekday() == 7
prüft, ob heute Sonntag ist
month()
Gibt den aktuellen Monat zurück
- Beispiel: month() == 6
prüft, ob es Juni ist
day()
Gibt den Tag des aktuellen Monats zurück
- Beispiel: day() == 20
prüft, ob heute der 20. ist
unix_timestamp(time)
Diese Funktion erwartet einen String mit einem Datum im Englischen Datumsformat und versucht, dieses Format in einen Unix-Timestamp (die Anzahl der Sekunden seit dem 01. Januar 1970 00:00:00 UTC) zu übersetzen.
time_format($format$, $timestamp$)
Gibt anhand vorzugebenden Musters formatierte Uhrzeit als String zurück. Der erste Parameter (String $format$) definiert das Formatierungsformat. Der zweite Parameter ($timestamp, optional) definiert den angegebenen Timestamp. Wenn kein Zeitstempel angegeben wurde, wird gegenwärtige Zeit berücksichtigt.
Im Format-Parameter werden folgende Zeichen erkannt:
Format-Zeichen | Beschreibung | Beispiel für Rückgabewerte |
a | Kleingeschrieben: Ante meridiem (Vormittag) und Post meridiem (Nachmittag) | am oder pm |
A | Großgeschrieben: Ante meridiem (Vormittag) und Post meridiem (Nachmittag) | AM oder PM |
g | Stunde im 12-Stunden-Format, ohne führende Nullen | 1 bis 12 |
G | Stunde im 24-Stunden-Format, ohne führende Nullen | 0 bis 23 |
h | Stunde im 12-Stunden-Format, mit führenden Nullen | 01 bis 12 |
H | Stunde im 24-Stunden-Format, mit führenden Nullen | 00 bis 23 |
i | Minuten, mit führenden Nullen | 00 bis 59 |
s | Sekunden mit führenden Nullen | 00 bis 59 |
e | Zeitzonen-Bezeichner | Beispiele: UTC, GMT, Atlantic/Azores |
P | Zeitunterschied zur Greenwich time (GMT) in Stunden mit Doppelpunkt zwischen Stunden und Minuten | Beispiel: +02:00 |
T | Abkürzung der Zeitzone | Beispiele: EST, MDT … |
- Beispiel:
$time=(time_format("H:i"))$
hier wird in der Variable $time$ die aktuelle Uhrzeit in der Channel Zeitzone im Format hh:mm gespeichert.
Unsere Funktion time_format() basiert sich auf der php Funktion date() und nimmt die selbe Zeichen als Formatparameter wie date(). Die komplette Zeichenliste findest Du in der php Dokumentation.