从 Braintree Payments 的订阅数据中获取日期

Getting Date from Subscription Data from Braintree Payments

我可能遗漏了一些明显的东西;我正在尝试从 returned 数据中获取日期,这些数据通过使用 Braintree Payments 设置订阅。我的代码如下:

$result1 = Braintree_Subscription::create($subscriptionData);

if ($result1->success) {
    echo("Subscription ID: " . $result1->subscription->id . "<br />");
    echo("Transaction ID: " . $result1->subscription->transactions[0]->id . "<br />");
    echo("Type: " . $result1->subscription->transactions[0]->amount . "<br />");
    //next line has error!!!!!!
    echo("Date: " . $result1->subscription->billingPeriodEndDate . "<br />");

前三个"echo's"return他们应该没有问题。如果我尝试获取任何日期值,例如:billingPeriodEndDate、billingPeriodStartDate、createdAt、updatedAt,页面就会失败,(不再显示任何内容)但没有错误。错误报告已打开。任何帮助表示赞赏。

如果我删除错误所在的行并在下面添加以下内容

echo "<ul>";
    foreach ($result1 AS $item) {
    echo "<li>" . $item . "</li>";
    }

然后我就可以看到数组的全部内容了。但我仍然无法拔出我需要的部分。日期的格式为:

billingPeriodEndDate=2016 年 1 月 1 日,星期五 00:00:00 UTC,

因为它包含一个可能是问题所在的逗号...?

谢谢

完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support.

在不知道确切错误的情况下,我猜测没有设置默认时区。尝试设置一个,看看是否有效。

date_default_timezone_set("America/Chicago")

完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support.

日期属性 return 一个 DateTime 对象。尝试格式化日期,您可能会收到 Object of class DateTime could not be converted to string 错误。

echo("Date: " . $result1->subscription->billingPeriodEndDate->format('Y-m-d H:i:s') . "<br />");

如果有帮助请告诉我!