#zapier-cli
#zapier-cli
Вопрос:
В моих входных полях zapier есть одно поле, в котором пользователь может ввести дату, но я хочу, чтобы zapier работал, только если я напишу дату в «2020-09-18T15:30», в противном случае должно появиться сообщение о том, что введенные данные не соответствуют указанному формату. Я пробовал это, но это не работает.
const activityEditableFields = async (z, bundle) => {
if (bundle.inputData.dueDate) {
(/d{4}-d{2}-d{2}Td{2}:d{2}Z/.test(`${bundle.inputData.dueDate}`))
}
здесь в поле указано значение duedate, и я указываю формат, в котором, если в нем есть данные, они должны соответствовать указанному формату, но в zap нет разницы. Если вы можете помочь мне как можно скорее. Ответьте.
Ответ №1:
В этом не должно быть необходимости. Согласно документам:
Поля DateTime позволяют пользователям вводить даты и время, используя их читаемые человеком значения, машиночитаемые даты или стандартные английские слова для обозначения времени типа
tomorrow
. Zapier интерпретирует ввод даты от пользователей и выводит стандартное значение даты и времени ISO 8601 в ваш API.
Если вы объявите поле как datetime
, то bundle.inputData.dueDate
всегда будет правильное значение даты и времени ISO 8601.
Комментарии:
1. хорошо, дата автоматически берется в ISO 8601 datetime, но в ответе затем отображается добавление 5 часов 30 минут. Я не хочу, чтобы это произошло. Он должен напечатать дату, введенную в поле ввода.
2. Можете ли вы дополнить свой вопрос вводом и выводом, которые вы видите / ожидаете? похоже, что это работает так, как задумано, но сбивает с толку
3. Я обновил свой вопрос с помощью InputField, где я даю ввод и ответ, который я вижу. И, как вы можете видеть, в ответе это не совпадает с заданным вводом.
Ответ №2:
Самый простой способ, который я смог найти для решения этой проблемы, заключался в использовании с JS-кодом только первых 10 символов даты Zapier ISO8601.
bundle.inputData.dueDate.substr(0,10)
или использовать moment
для анализа даты (эта библиотека поддерживается Zapier):
const moment = z.require('moment');
....
moment(bundle.inputData.dueDate).format("YYYY-MM-DD HH:MM:SS UTC")
Единственным недостатком является то, что вам нужно использовать редактор кода