尝试使用PHP Parse.com

时间:2015-12-15 09:23:52

标签: php database parse-platform

我是parse.com的新手。基本上总结一下,我正在尝试创建一个查询,显示两个日期之间的记录数,在下面的例子中,我实际上是专门查询第14个日期。

我的预期结果是5,但无论如何它总会给我0,

总的来说,我在12号和12号之间的表中有93条记录。 14,即使更改日​​期范围,它仍然只给我0,这告诉我,它可能是我反对查询的日期格式?

另外,我更改了ClientID&密钥,但这些在原始代码中是正确的,因为我的其他查询是成功的。

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.";

2 个答案:

答案 0 :(得分:1)

对于那些正在努力解决这个问题并且没有任何进展的人来说,而不是做一个Start&从日期开始,我已经确定了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.";

答案 1 :(得分:1)

根据我的经验,您还可以使用PHP的DateTime类来处理这个问题。您可以将DateTime的相同时间戳用作date()函数,它还提供了一些用于比较日期的内置功能。它还有一个优点,你可以直接比较和保存Parse的日期与DateTime,你不必将它们转换为字符串或类似的东西。例如(重新使用一些代码)

$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.";