Как передать дату в CloudKit через CK Web Services из сценария PHP?

Я пишу сценарий PHP для отправки данных в базу данных CloudKit через CK Web Services. Он хорошо работает со строковыми данными, но у меня возникают проблемы при передаче даты из PHP в поле CK Date / Time.

CK возвращает даты в виде 13-значного TIMESTAMP. Итак, следующий код

$timestamp = $record['created']['timestamp'];
$timestamp = $timestamp/1000;
echo '<td>'.date('m-d-Y H:i:s', $timestamp)."</td>";

отголоски

04-28-2017 12:35:19

Прекрасно и модно.

Поэтому я предполагаю, что если CK поставляет 13-значный TIMESTAMP, он должен принимать то же самое при передаче в поле даты / времени.

Увы, мимоходом $dobTimestamp из следующего

$dobTimestamp = strtotime($dob) * 1000;

Результаты в этом BAD_REQUEST ошибка

Неверное значение, ожидаемый тип TIMESTAMP

Когда я иду к CK Dashboard и вручную введите $dob, CK возвращает значение, точно равное $dobTimestamp так что думаю прохождение $dobTimestamp должно сработать . , , но это не так.

Я не могу узнать, что я должен делать в документах Apple. Кто-нибудь знает, как передать дату в поле CK Date / Time через веб-сервисы? Трудно представить, что не было бы способа сделать это.

0

Решение

После многих скрипок вот что работает с использованием PHP DateTime:

$openingDate = $_POST['openingDate']; // is mm/dd/yyyy
$closingDate = $_POST['closingDate'];

. . .

// Process Dates
$openingDateTime = new DateTime($openingDate, new DateTimeZone('America/New_York'));  // Create new DateTime object
$closingDateTime = new DateTime($closingDate, new DateTimeZone('America/New_York'));

date_time_set($openingDateTime, 10, 00); // Set time for date object
date_time_set($closingDateTime, 17, 00); // Set time for date object

$oDate = (date_timestamp_get($openingDateTime)*1000);  // Get the TIMESTAMP from DateTiem object and convert to milliseconds
$cDate  = (date_timestamp_get($closingDateTime)*1000);

JSON для CK Query прост:

. . .

"openingDate": {"value":'.$oDate.'},
"closingDate": {"value":'.$cDate.'},
0

Другие решения

Других решений пока нет …