【发布时间】:2020-07-15 18:38:37
【问题描述】:
我正在开发一个气象服务,我需要编写一个代码来显示下周的天气预报。在服务器上,我只有一个“时间”实体,其“价值”为下周一,如“2020-04-06T00: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))
但条件的第二部分不正确。
【问题讨论】:
-
您的要求并没有多大意义:为什么如果是周二,您只返回周一+下周的周二,但如果是周六,您希望提前整整一周?
-
我们使用的 API 最多支持显示 7 天。所以我说如果今天是星期五,那么到本周末我们还有 2 天。因此,下周将显示另外 5 天,即从周一到周五。我不需要显示这周的天数,只显示下周的天数。明白了吗?
-
不过,这并不能解释您希望仅在今天是星期二时才显示下周星期一和星期二的逻辑。
-
见。例如,如果今天是星期二 (31.03),那么接下来的 7 天是:(01.04)、(02.04)、(03.04)、(04.04)、(05.04)、(06.04)、(07.04)。由于(06.04),(07.04)是下周,我只需要给他们看。你现在明白我了吗?
标签: javascript node.js json typescript momentjs