Превратить стандартную дату "ДД / ММ / ГГГГ" в UNIX Time

У нас есть приложения для захвата форм из внешнего интерфейса, которым необходимо передать значение в систему баз данных UNIX.

Поскольку прямой интеграции нет, мы используем Zapier для этого, и она работает хорошо, за исключением преобразования даты, поскольку, поскольку мы кодируем ее в JSON (через веб-крючок Zapier), система баз данных UNIX должна соответствовать формату Unit Date (например, для ДОБ 1/1/1970 нужно записать как "ДОБ": "/ Дата (-39600000+1100)/",)

Задача состоит в том, как преобразовать стандартный DD/MM/YYYY в вышеуказанный формат через zapier (поскольку я использую его для интеграции), чтобы база данных могла принять его без проблем?

1 ответ

Решение

Я предполагаю, что формат даты, о котором вы говорите, это формат даты ISO. Это выглядит так - 2018-03-16T00:00:00.000Z,

Возможно, вы захотите добавить промежуточный шаг для форматирования поля даты, полученного из вашего триггера формы.

Метод 1 - Использование приложения Zapier Formatter:

  1. Добавьте действие после шага триггера и выберите приложение Formatter. Скриншот
  2. Выберите опцию даты / времени
  3. Выберите "Формат" в разделе "Преобразование". В поле ввода выберите поле даты на шаге триггера.
  4. Установите для форматирования, от формата и часового пояса, как требуется. Скриншот
  5. Используйте это поле в вашем следующем действии Webhook.

У Zapier есть статья о форматировании дат здесь.

Метод 2 - Использование приложения Code от Zapier: Если вам нужно больше контроля, вы можете использовать приложение Code от Zapier.

  1. Выберите приложение "Код", выберите "Запустить Javascript".
  2. Во входных данных установите поле даты из вашего триггерного приложения в свойство с именем "iDate". Скриншот
  3. В разделе кода скопируйте и вставьте приведенный ниже код.
  4. В последней строке вы можете изменить strJSON текст в любой из других форматов, перечисленных выше.
  5. Используйте вывод поля даты из шага кода в действии Webhook.
var yourDate = inputData.iDate;
var dArr = yourDate.split('/');
var d = Date.parse(`${dArr[2]}-${dArr[1]}-${dArr[0]}`);

//String representation of the Date for JSON
var strJSON = new Date(d).toJSON();
console.log('JSON String Representation: ', strJSON);

//ISO Date Format
var iso = new Date(d).toISOString();
console.log('ISO: ', iso);

//Date String
var str = new Date(d).toDateString();
console.log('Date String: ', str);

//Date String with time
var strTstamp = new Date(d).toString();
console.log('Timestamp String: ', strTstamp);

var output = {date: strJSON};

Обновить:

Вы можете использовать приведенный ниже код в приложении "Код" на Zapier (выполните настройку, как указано выше). Это выведет время в формате, который вы указали в комментарии -39600000+1100,

var yourDate = inputData.iDate;
var dArr = yourDate.split('/');

//11*60*60*1000 for +11:00 Timezone. It is converting 11 hours into milliseconds.
//If your timezone is +05:30, 5*60*60*1000+(30*60*1000)
var unixTime = new Date(`${dArr[2]}-${dArr[1]}-${dArr[0]} 00:00:00 UTC`).getTime() - (11*60*60*1000);

//If your timezone is not +11:00, swap it below.
var unixWithTZ = `${unixTime}+1100`

console.log('UnixTime: ', unixWithTZ);
console.log('UnixWithTZ: ', unixWithTZ);

var output = {date: unixWithTZ};

Узнайте больше о Unix Time здесь.

Другие вопросы по тегам