我是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.";
答案 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.";