Javascript для добавления будущих дат встраиваемых данных в Qualtrics

1

Меня попросят интегрировать JavaScript в Qualtrics для выполнения следующих трех шагов:

  1. Получить текущую дату в формате UTC и преобразовать в ISO 8601.
  2. Используйте текущую дату на предыдущем шаге, чтобы создать будущую дату (т.е. Через 3 месяца).
  3. Назначьте значение даты, сгенерированной в # 2, во встроенное поле данных.

Примечание. Это не в моей рулевой рубке, и я испытываю немало проблем с выполнением этой задачи.

Вот фрагмент кода, который я создал до сих пор:

//add 3 months from current date;
var someDateM3 = new Date();
var numberOfDaysToAdd = 90;
someDateM3.setDate(someDateM3.getDate() + numberOfDaysToAdd);
var month3 = someDateM3.toISOString();

//assign value of month3 to embedded data field 'month3';
Qualtrics.SurveyEngine.addEmbeddedData( 'month3', "${e://Field/month3}");

Я на правильном пути? Мне не хватает подготовки и навыков, необходимых для выполнения этой, казалось бы, прямой задачи. Любые советы были бы невероятно полезными.

Теги:
date
qualtrics

2 ответа

1
Лучший ответ

Я думаю, что ваш расчет даты прекрасен. Проблема заключается в том, чтобы сохранить его во встроенную переменную данных. Которые должны быть:

Qualtrics.SurveyEngine.setEmbeddedData('month3', month3);

Вам необходимо определить переменную встроенных данных month3 в потоке опроса до блока, который содержит вопрос с вашим вычислением даты JavaScript.

  • 0
    Спасибо за указание на разницу между setEmbeddedData и addEmbeddedData! У меня месяц3 определен как встроенная переменная данных в потоке опроса до блока, но нужно ли ему присваивать ему значение в потоке опроса?
  • 0
    Нет, вам не нужно присваивать значение месяцу3.
1

Поздно вечеринке, но на самом деле вам не нужен javascript для выполнения любого из этого, если вы этого не хотите.

Вы можете напрямую передавать дату во встроенную переменную данных. Вы можете настраивать формат, как вы хотите, чтобы эта дата отображалась с использованием синтаксиса даты PHP. Затем вы можете снова установить относительные даты, используя синтаксис PHP для относительного времени и времени, и используя "OtherDate" вместо "CurrentDate", когда во встроенных данных. Просто убедитесь, что вы кодируете синтаксис для обоих, как для URL-адреса ( %20 для пробела и т.д.).

Я считаю, что он должен выглядеть примерно так (замените мой Ymd любым форматированием, которое вам нужно, если это не так):

${date://OtherDate/Y-m-d/%2B3%20month} (or /%2B90%20day instead if you want to mimic exactly what your code is doing).
  • 1
    Это было бы действительно здорово, если бы это работало. Увы, это не так. Синтаксис даты PHP работает, только если это Y / m / d, m / d / Y или d / m / Y (только с косой чертой, например, Y% 2Fm% 2Fd). Ymd или любой другой синтаксис даты PHP не работает.
  • 1
    Я попробовал еще одну вещь. Оказывается, вы можете использовать Y, m и d сами по себе. Таким образом, это дает вам YYYY-MM-DD через 3 месяца: $ {date: // OtherDate / Y / + 3 месяца} - $ {date: // OtherDate / m / + 3 месяца} - $ {date: // OtherDate / d / + 3 месяца}
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню