2015-12-15 48 views
1

我對parse.com相當陌生。基本上總結我試圖創建一個查詢,將顯示2日期之間的記錄數,在下面的例子中,我實際上是特別查詢第14條。試圖使用PHP Parse.com查詢日期之間

我的預期結果爲:5,但它總是給我0,不管?

總的來說,我有93個的12 & 14日期間表中的記錄,更改日期範圍,即使它仍然給我的只有0,這表明,我認爲這是可能的日期格式我已經把反對查詢?

而且,我已經改變了客戶端ID &關鍵,但這些都是在原來的代碼正確的,因爲我的其他查詢成功。

include '../vendor/autoload.php'; 


session_start(); 
use Parse\ParseClient; 
use Parse\ParseUser; 
use Parse\ParseQuery; 
use Parse\ParseObject; 

ParseClient::initialize('CLIENTID', 'KEY'); 

$currentUser = ParseUser::getCurrentUser(); 

$startDate = '2015-12-14T00:00:00.000Z'; 
$endDate = '2015-12-14T23:59:00.000Z'; 


$query = new ParseQuery("CountTable"); 
$query->equalTo("user", $currentUser); 
$query->greaterThanOrEqualTo("createdAt", $startDate); 
$query->lessThanOrEqualTo("createdAt", $endDate); 
$count = $query->count(); 
// The count request succeeded. Show the count 
echo "Only " . $count . " Results."; 

回答

1

對於任何與此掙扎,不是在任何地方獲得,而不是做一個開始&起始日期我已經解決了date()函數&格式化它以同樣的方式作爲Parse.com

$parseDate = date('Y-m-d\TH:i:s.u'); 
$sevenDaysAgo = date('Y-m-d\TH:i:s.u', strtotime('-7 days')); 

我已經然後規定我有多少天回需要爲每一個結果:

$query = new ParseQuery("CountTable"); 
$query->equalTo("user", $currentUser); 
$query->greaterThanOrEqualTo("createdAt", $sevenDaysAgo); 
$count = $query->count(); 
// The count request succeeded. Show the count 
echo "Only " . $count . " Results."; 
+0

我將日期轉換爲解析數據庫的格式。我想要在兩個日期之間獲得所有數據。我正在使用下面的代碼。但是它不起作用。'$ fd = date('Y-m-d \ T00:00:00.000 \ Z',strtotime($ fdate)); $ td = date('Y-m-d \ T23:59:59.000 \ Z',strtotime($ tdate)); $ query = new ParseQuery(「Bookings」); $ query-> greaterThanOrEqualTo(「createdAt」,$ fd); $ query-> lessThanOrEqualTo(「createdAt」,$ td); $結果= $查詢 - >找到();' –

1

以我的經驗,你也可以使用PHP的DateTime類來處理這個。您可以使用與date()函數相同的DateTime時間戳,並且提供了一些用於比較日期的內置功能等等。它還具有可以直接使用DateTime比較和保存Parse的日期的優點,您不必將它們轉換爲字符串或類似的東西。例如(重新使用您的部分代碼)

$startDate = new DateTime(); //Has current date and time 
$startDate->modify("-2 months"); 
$endDate = new DateTime(); 
$endDate->modify("-7 days"); 
$query = new ParseQuery("CountTable"); 
$query->greaterThanOrEqualTo("createdAt", $startDate); 
$query->lessThanOrEqualTo("createdAt", $endDate); 
$count = $query->count(); 
// The count request succeeded. Show the count 
echo "Only " . $count . " Results."; 
+1

我認爲這是做這件事,如果我不是從parse.com採取的正常的方式,但由於解析並將其作爲包括:年月日\ TH:我:蘇我不認爲這種方法是有效的,我也嘗試過,也嘗試過格式化,但無法使其運行。最後我用:date('Y-m-d \ TH:i:s.u',strtotime(' - 7 days'));這似乎是工作正常:) –