时刻 JS ( "Must to show days in next week" )



我正在开发一项天气服务,我需要编写一个代码来显示下周的天气预报。从服务器上,我只有一个"值"为下周一的"时间"实体,如"2020-04-06T000:00:00.000+02:00"。

{
"message": "Show me the weather for next week",
"entities": [
{
"value": "weather",
"text": "weather",
"entity": "radio_tag"
},
{
"value": "play_next",
"text": "next",
"entity": "media_control"
},
{
"value": "next",
"text": "next",
"entity": "next"
},
{
"value": {
"values": [
{
"value": "2020-04-06T00:00:00.000+02:00",
"grain": "week",
"type": "value"
}
],
"value": "2020-04-06T00:00:00.000+02:00",
"grain": "week",
"type": "value"
},
"entity": "time"
},
{
"value": "weather_condition",
"entity": "sub_intent"
}
],
"intent": "weather_condition",
"user_id": "5258",
"language_id": "56",
"driver": "gigaaa",
"abort": "0",
"extras": {
"coordinates": {
"lat": "44.4150804",
"lng": "19.1290729"
}
},
"conversation_messages_count": "1"
}

例如,如果今天是星期二,我必须显示下星期的星期一和星期二;如果今天是周六(04.04(,我必须从星期一(06.04(到星期六(11.04(每天显示下星期。我是一个初学者,我必须使用Moment JS。

我试过这个条件if (this.conversation.payload.grain === 'week' && moment().startOf('isoWeek').isSame(this.conversation.payload.forecastTime))但条件的第二部分是不正确的。

我们获取当前日期,并检查我们是否与数据不在同一个isoweek中,以便从当前周中筛选出数据行。然后我们取当前日期并添加一周,这样我们就可以检查<1周过去了。从理论上讲,只要用户的时区和返回的数据相同,就应该是您所需要的。

var valueFromData = this.conversation.payload.value;
var dateFromData = moment(valueFromData).startOf('day');
var oneWeek = moment().add(7,'d').startOf('day');
if(moment().startOf('isoweek').isBefore(dateFromData)
&& dateFromData.isBefore(oneWeek))

最新更新