簡體   English   中英

將JSON字符串日期轉換為JavaScript(Google Apps腳本)

[英]Convert JSON string date to JavaScript (Google Apps Script)

我正在嘗試將JSON字符串日期(在Google Apps腳本中)轉換為JavaScript日期對象,然后檢查該日期是否在另一個日期之后,但是我無法使其正常工作。

我在這里嘗試使用建議。 但我的輸出不正確。 我究竟做錯了什么? 謝謝你的幫助。


代碼段:

var json = JSON.parse(resp);

var flightDate = new Date(json[i].flightDate)

for (i = 0; i < json.length; i++ {

flightDate = json[i].flightDate
traveler = json[i].traveler
flight = json[i].flight
destination = json[i].destination

var afterDate = new Date('1997-07-30')

if (flightDate >= afterDate) {
    output.push ([flightDate, traveler, flight, destination])
    }
}

輸出:

1969-12-31

JSON:

[{"flightDate": "2013-03-01",
"traveler": "Paul Carter",
"flight": "JetBlue",
"destination": "Australia"
},
{"flightDate": "1997-02-18",
"traveler": "Paul Carter",
"flight": "American Airlines",
"destination": "Australia"
},
{"flightDate": "2004-05-25",
"traveler": "Paul Carter",
"flight": "JetBlue",
"destination": "Chile"
},
{"flightDate": "1995-08-05",
"traveler": "Paul Carter",
"flight": "United",
"destination": "Ireland"
}]

更新:

此問題中的JSON已更新,以准確反映我在計算機上擁有的內容,因此問題不是JSON格式。 我主要對將JSON字符串日期轉換為JavaScript日期感興趣。 請注意,由於這是在Google Apps腳本中,因此無法導入庫(即Moment.js)。

首先,如果這是你的JSON的副本,那么您解析不會因為缺少工作,在里面。

更正json之后,您可以使用Arrays過濾器來獲取特定日期之后的航班。

 var data = [{ flightDate: "2013-03-01", traveler: "Paul Carter", flight: "JetBlue", destination: "Australia" }, { flightDate: "1997-02-18", traveler: "Paul Carter", flight: "American Airlines", destination: "Australia" }, { flightDate: "2004-05-25", traveler: "Paul Carter", flight: "JetBlue", destination: "Chile" }, { flightDate: "1995-08-05", traveler: "Paul Carter", flight: "United", destination: "Ireland" }]; var afterDate = new Date("2000-01-01"); var flightsAfter = data.filter(function(flight) { return new Date(flight.flightDate) >= afterDate; }); console.log(flightsAfter); 

編輯:既然JSON在語法上似乎是正確的,我只能評論為什么打印1969-12-31。

EDIT2:根據您最近提供的代碼片段; (有很多語法錯誤!)您正在將flightDate string與afterDate Date進行比較。 您應該首先從flightDate創建一個Date對象,然后進行相應比較。

當您使用無效值調用Date構造函數時; 在大多數情況下,它將打印出1970-01-01的紀元。

您可能落后於UTC時區,所以您的時間是1969-12-31。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM