Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php api发送Onesignal通知:参数;在“之后发送”;一个信号';不考虑客户的通知_Php_Symfony4_Onesignal - Fatal编程技术网

使用php api发送Onesignal通知:参数;在“之后发送”;一个信号';不考虑客户的通知

使用php api发送Onesignal通知:参数;在“之后发送”;一个信号';不考虑客户的通知,php,symfony4,onesignal,Php,Symfony4,Onesignal,我正在使用php/symfony 4处理一个项目,在创建一个对象之后,我发送了一个推送通知,通常不指定传递参数“send_after”,它工作正常,移动设备实时接收通知。 但是,当我指定交付日期时,他们没有考虑到这一点,并且它是在创建我的对象时发送的,下面是我的代码片段: $fields = array( 'app_id' => $this->api_key, 'include_player_ids' => $devices, '

我正在使用php/symfony 4处理一个项目,在创建一个对象之后,我发送了一个推送通知,通常不指定传递参数“send_after”,它工作正常,移动设备实时接收通知。 但是,当我指定交付日期时,他们没有考虑到这一点,并且它是在创建我的对象时发送的,下面是我的代码片段:

$fields = array(
        'app_id' => $this->api_key,
        'include_player_ids' => $devices,
        'data' => array(
            "type" => $type,
            "url" => $url
        ),
        'contents' => $content
    );

    if (null != $dateTime) {
        date_time_set($dateTime, 9, 0, 0);

        array_push($fields, [
            'send_after' => $dateTime->format('Y-m-d H:i:s TO')] );
    }

    $fields = json_encode($fields);
所以我尽量尊重文件中提到的格式:“2015-09-24 14:00:00 GMT-0700”

如果有人已经遇到这个问题,我如何解决它

提前感谢。

这应该可以:

    $fields = array(
        'app_id' => $this->api_key,
        'include_player_ids' => $devices,
        'data' => array(
            "type" => $type,
            "url" => $url
        ),
        'contents' => $content
    );

  /* $dateTime=date_create("2020-08-12"); */

    if (null != $dateTime) {
        date_time_set($dateTime, 9, 0, 0);

       /* $send_after = date_format($dateTime,'Y-m-d H:i:s TO'); */

       $fields['send_after'] = $dateTime->format('Y-m-d H:i:s TO')] ); /* $send_after */
    }

    $fields = json_encode($fields);
这应该起作用:

    $fields = array(
        'app_id' => $this->api_key,
        'include_player_ids' => $devices,
        'data' => array(
            "type" => $type,
            "url" => $url
        ),
        'contents' => $content
    );

  /* $dateTime=date_create("2020-08-12"); */

    if (null != $dateTime) {
        date_time_set($dateTime, 9, 0, 0);

       /* $send_after = date_format($dateTime,'Y-m-d H:i:s TO'); */

       $fields['send_after'] = $dateTime->format('Y-m-d H:i:s TO')] ); /* $send_after */
    }

    $fields = json_encode($fields);

您是否已使用
var\u dump($dateTime->format('Y-m-d H:i:s TO'))
确认格式化日期确实是他们想要的格式?是的,实际上问题在于数组中的值。您是否已使用
var\u dump($dateTime->format('Y-m-d H:i:s TO')确认格式化日期确实是他们想要的格式
?是的,实际上问题出在数组内的值的符号上。非常感谢,我关注的是日期值,直接忘记了数组的键。非常感谢,我关注的是日期值,直接忘记了数组的键。