[英]Moment JS (“Must to show days in next week”)
我正在研究氣象服務,我需要編寫一個代碼來顯示下周的天氣預報。 在服務器上,我只有一個“時間”實體,其“價值”為下周一,如“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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.