簡體   English   中英

如何訪問 BigQuery\Timestamp 的私有屬性

[英]How can I access private property of BigQuery\Timestamp

我正在使用 BigQuery,但在檢索數據時遇到問題。 我有一個 BigQuery\Timestamp object

object(Google\Cloud\BigQuery\Timestamp)#1377 (1) { ["value":"Google\Cloud\BigQuery\Timestamp":private]=> object(DateTime)#1375 (3) { ["date"]=> string(26) "2020-12-09 16:16:56.706000" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+00:00" } }

value屬性是private的,所以我不能使用日期。 我收到此錯誤消息:

Cannot access private property Google\Cloud\BigQuery\Timestamp::$value

如何獲取date屬性的字符串值? 我需要對兩個 bigQuery 數據集中的所有數據進行排序。 日期是關鍵元素,我希望結果結構如下

{
    "data": {
        "2020-12-12 12:00:00": {
            "data1_from_datasetA": 1,
            "data2_from_datasetA": 2,
            "data1_from_datasetB": 3,
        },
        "2020-12-12 13:00:00": {
            "data1_from_datasetA": 6,
            "data2_from_datasetA": 5,
            "data1_from_datasetB": 8,
        },
        "2020-12-12 14:00:00": {
            "data1_from_datasetA": 12,
            "data2_from_datasetA": 2,
            "data1_from_datasetB": 6,
        },
    }
}

我建議要求不將時間戳轉換為對象的rawResults ,因為這會適得其反。

 $queryResults = $bigQuery->runQuery($jobConfig, array(
            'timeoutMs' => 55 * 10000,
            'returnRawResults' => true
        ));

這樣,每個條目都作為一個簡單的純值返回。

正如iainn在評論中所建議的那樣,使用 class 的 get 方法可以完美地工作。

$dateTime = $row["created_at"]->get()->format('d-m-Y H:i:s');

暫無
暫無

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

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