将标准日期 "DD/MM/YYYY" 转换为 UNIX 时间
Turn standard date "DD/MM/YYYY" into UNIX Time
我们有一个来自前端的表单捕获应用程序,需要将值传递到 UNIX 数据库系统。
由于没有可用的直接集成,我们使用 Zapier 来执行此操作,除了日期转换外,它工作得很好,因为我们在 JSON(通过 Zapier webhook)中编写了它,UNIX 数据库系统muse 符合单位日期格式(例如 DOB 1/1/1970 需要写成 "DOB" : "/Date(-39600000+1100)/",)
挑战在于,如何通过 zapier(因为我将其用于集成)将标准 DD/MM/YYYY 转换为上述格式,以便数据库可以毫无问题地接受它?
我假设您所说的日期格式是 ISO 日期格式。看起来像这样 - 2018-03-16T00:00:00.000Z
.
您可能想要添加一个中间步骤来格式化从表单触发器收到的日期字段。
方法 1 - 使用 Zapier Formatter 应用程序:
- 在触发步骤后添加一个操作并选择 Formatter 应用程序。
screenshot
- Select Date/Time 选项
screenshot
- 在转换下选择格式。在输入字段中,select 来自触发器步骤的日期字段。
- 根据需要设置收件人格式、发件人格式和时区。
screenshot
- 在您的下一个 Webhook 操作中使用此字段。
Zapier 有一篇关于格式化日期的文章 here。
方法 2 - 使用 Zapier 的代码应用程序:
如果您需要更多控制,可以使用 Zapier 的代码应用程序。
- 选择代码应用,select "Run Javascript"。
- 在输入数据中,将触发器应用程序中的日期字段设置为名为 'iDate' 的 属性。
screenshot
- 在代码部分,复制并粘贴下面的代码。
- 在最后一行中,您可以将
strJSON
文本更改为上面列出的任何其他格式。
- 在 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 时间的更多信息 here。
我们有一个来自前端的表单捕获应用程序,需要将值传递到 UNIX 数据库系统。
由于没有可用的直接集成,我们使用 Zapier 来执行此操作,除了日期转换外,它工作得很好,因为我们在 JSON(通过 Zapier webhook)中编写了它,UNIX 数据库系统muse 符合单位日期格式(例如 DOB 1/1/1970 需要写成 "DOB" : "/Date(-39600000+1100)/",)
挑战在于,如何通过 zapier(因为我将其用于集成)将标准 DD/MM/YYYY 转换为上述格式,以便数据库可以毫无问题地接受它?
我假设您所说的日期格式是 ISO 日期格式。看起来像这样 - 2018-03-16T00:00:00.000Z
.
您可能想要添加一个中间步骤来格式化从表单触发器收到的日期字段。
方法 1 - 使用 Zapier Formatter 应用程序:
- 在触发步骤后添加一个操作并选择 Formatter 应用程序。 screenshot
- Select Date/Time 选项 screenshot
- 在转换下选择格式。在输入字段中,select 来自触发器步骤的日期字段。
- 根据需要设置收件人格式、发件人格式和时区。 screenshot
- 在您的下一个 Webhook 操作中使用此字段。
Zapier 有一篇关于格式化日期的文章 here。
方法 2 - 使用 Zapier 的代码应用程序: 如果您需要更多控制,可以使用 Zapier 的代码应用程序。
- 选择代码应用,select "Run Javascript"。
- 在输入数据中,将触发器应用程序中的日期字段设置为名为 'iDate' 的 属性。 screenshot
- 在代码部分,复制并粘贴下面的代码。
- 在最后一行中,您可以将
strJSON
文本更改为上面列出的任何其他格式。 - 在 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 时间的更多信息 here。