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

标签 javascript node.js json typescript momentjs

我正在开发气象服务,我需要编写一段代码来显示下周的天气预报。从服务器上,我只有一个“时间”实体,其“值”为下周一,例如“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)) 但条件的第二部分不正确。

最佳答案

我们获取当前日期并检查我们是否与数据不在同一等周中,以便过滤掉本周的数据行。然后,我们采用当前日期并添加一周,以便我们可以检查是否已过去 <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))

关于javascript - 时刻JS ("Must to show days in next week"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61014492/

相关文章:

javascript - 实现通用的ajax方法

json - 在 Node JS 中解析包含单个对象的数组

json - Azure CLI 内联参数不起作用

javascript - "with"带方括号表示法的范围和属性

javascript - 为什么 dropzone 不提交文件?

javascript - 不熟悉的带括号和逗号的变量赋值

node.js - BLE外设: scanning while connected

node.js - mongodb 服务在说 serverStatus 非常慢后崩溃

json - JSON 字符串中出现意外的 nil

c# - 如何根据另一个 JSON 属性有条件地反序列化 JSON 对象?