我有一个Google Assistant应用,该应用使用一些API来检索和传递我当地大学的公交车到达时间。问题是API以这样的字符串返回到达时间:
“ 2018-51-02T06:51:11”
我尝试使用存在于javascript中的slice和indexOf函数处理该字符串,以获取该字符串的最后时间部分,确切的代码是
finalString = departure.slice(departure.indexOf('T')+1, departure.length);
,但是最后,它仍然只打印出来并以原始字符串作为响应。该代码可以在我的计算机上脱机使用,也可以在本地使用,但在上载到Firebase Functions时不再可用。这个问题有帮助吗?
app.intent("wheres the catabus", (conv, {route}) => {
var routeDetails;
var closest_stop;
var finalString;
return cataAPIService.getRouteDetails(route)
.then((routeData) => {
routeDetails = routeData;
closest_stop = cataAPIService.findClosestStop(routeData, conv.device.location);
return cataAPIService.getStopDetails(closest_stop.StopId)
})
.then((stopData) => {
var departure = cataAPIService.getEstimatedStopDeparture(routeDetails, stopData);
finalString = departure.slice(departure.indexOf('T')+1, departure.length);
conv.ask('The closest stop to you is at ' + closest_stop.Name + '. The next departure is scheduled for ' + finalString);
})
.catch((error) => {
console.log(error);
conv.ask("I can't get that information right now, please try again.");
});
});
答案 0 :(得分:1)
我无法使用node.js 6和以下代码在Firebase Cloud Functions中重复您的问题:
var departure="2018-51-02T06:51:11";
var finalString = departure.slice(departure.indexOf('T')+1, departure.length);
console.log('finalstring',finalString);
如预期的那样,它将以下内容发送到日志:
finalstring 06:51:11
如果显示出导致问题的完整代码,我们可能会为您提供帮助。
您看到的行为表明字符串中实际上没有“ T”。
否则,我通常会更像这样使用代码:
var f2 = departure.split('T')[1];
(但前提是我知道在日期时间实际上有一个T)