gpt4 book ai didi

javascript - Dialogflow fulfillment 中的日期时间函数

转载 作者:行者123 更新时间:2023-11-29 23:13:19 26 4
gpt4 key购买 nike

谁能解释一下这些函数是什么意思?

setDate = agent.parameters.date.split('T')[0];
setTime = agent.parameters.time.split('T')[1].split(':')[0];

我正在为预订进行预订,我希望 Google 智能助理以 12 小时格式打印出用户输入的时间。现在,当我输入下午 4 点时,它会在 16 点打印出来。我的日期工作正常,但时间不是。我试过其他方法,但我不太明白“ split ”的意思。

例如。如果我说“今天下午 4 点 30 分预订餐 table ”,那么 Google 将回复为“您已于 2018-11-23 下午 4:30 预订” 但是现在有了代码,它会打印出 "2018-11-23 at 16"

这是我的代码:

function makeBooking(agent){

bookingDate= agent.parameters.date.split('T')[0];
bookingTime = agent.parameters.time.split('T')[1].split(':')[0];

agent.add(`You have booked on ${availDate} at ${availTime}.`);

}

// A helper function that receives Dialogflow's 'date' and 'time' parameters and creates a Date instance.

function convertParametersDate(date, time){
var resultDate = new Date(Date.parse(date.split('T')[0]));
return resultDate;
}

最佳答案

根据 dialoflow 文档,sys.date返回 ISO 8601 格式的日期字符串,例如“2018-04-06T12:00:00-06:00”。

所以如果agent.parameters.date是一个相同格式的字符串,那么在makeBooking函数中,假设值为“2018-11-23T16:51 :42+05:30"然后:

function makeBooking(agent){ 
// 2018-11-23
var bookingDate= agent.parameters.date.split('T')[0];
// 16
var bookingTime = agent.parameters.time.split('T')[1].split(':')[0];
// You have booked on 2018-11-23 at 16
agent.add(`You have booked on ${availDate} at ${availTime}.`);
}

如果您希望时间改为“4:51 pm”,则需要将“16:51”转换为适当的格式。这里已经有很多很多关于重新格式化日期字符串的问题,在这种情况下,您希望日期和时间作为单独的字符串,因此您可以使用类似下面的内容作为单独的元素返回日期和时间的数组:

// "2018-11-23T16:51:42+05:30"
function reformatDate(s) {
// ["2018-11-23", "16:51:42+05:30"]
var b = s.split('T');
// ["16", "51"]
var t = b[1].slice(0,5).split(':');
return [b[0], `${t[0]%12||12}:${t[1]} ${t[0]<12?'am':'pm'}`];
}

["2018-11-23T16:51:42+05:30",
"2018-11-23T06:16:42+05:30",
"2018-11-23T00:01:42+05:30",
"2018-11-23T23:55:42+05:30"
].forEach(s => {
var parts = reformatDate(s);
console.log(`You have booked on ${parts[0]} at ${parts[1]}`);
});

关于javascript - Dialogflow fulfillment 中的日期时间函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53439863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com