2015-10-06 35 views
0

我是Parse.com的新手。我一直在使用PHP SDK来尝试填充一些数据。到目前为止,我没有任何问题,除了无法针对具有“Date”类型的列的对象设置日期值之外。无法使用Parse.com PHP SDK设置Date类型列 - 无效类型

我的代码:

$uploadDate = date("Y-m-d\TH:i:s.u",$instaPost->created_time); 
echo $uploadDate; 
$photo->set('uploadDate',$uploadDate); 
$photo->save(); 

回声调用返回:2015-10-06T19:33:36.000000

解析给我的错误:无法创建新的对象 ,并显示错误消息:无效的类型关键uploadDate,预产期,但得到的字符串

我也曾尝试:

$uploadDate = array(
    "__type" => "Date", 
    "iso" => date("c", time()) 
); 

和各种其他组合和日期格式(date()函数的第一个参数)。

有没有人知道这样做的正确方法?

回答

2

Php date()函数返回字符串。所以$ uploadDate是字符串类型。但是,当您尝试将其设置为列类型日期时,它会给出错误。这应该可以解决你的问题。

$date = array(
    "__type" => "Date", 
    "iso" => date("c", $instaPost->created_time) 
); 
$photo->set('uploadDate',$date); 
$photo->save(); 
+0

如上面的第二个代码块中提到,我已经试过你说什么。无论我使用time()还是$ instaPost-> created_time都不重要 - 它只是一个不同的值。我得到一个错误,说该函数不期待数组,并尝试使用setArray。使用setArray也不起作用(我不记得这个错误消息,但我会在今天晚些时候发布 - 我相信它基本上是说预期的类型日期和接收类型数组)。 – Baraka

2

我遇到了同样的问题。你做得对,但你错过了一件事。

而不是使用: $ photo-> set('uploadDate',$ uploadDate);

试试这个: $ photo-> setArray('uploadDate',$ uploadDate);

我也是用这个功能,我在parse.com论坛发现:

function getProperDateFormat($value) 
    { 
    $dateFormatString = 'Y-m-d\TH:i:s.u'; 
    $date = date_format($value, $dateFormatString); 
    $date = substr($date, 0, -3) . 'Z'; 
    return $date; 
    } 

其中$值是一个PHP Date对象。

所以这是我如何把它们放在一起:

$date = new DateTime($year."-".$month."-".$day); 
$puzzle->setArray("date", ["__type" => "Date", "iso" => getProperDateFormat($date)]); 

它完美对我来说