2

我正在尝试使用 XML-RPC API 将活动插入到 openX 中,除了开始日期和结束日期之外的所有内容都运行良好,我当前的代码如下所示:

$campaign = new XML_RPC_Value(
                    array('advertiserId' => new XML_RPC_Value($advertiserID, 'int'),
                            'campaignName' => new XML_RPC_Value('My Banner', 'string'),
                            'startDate' => new XML_RPC_Value(new Date(time()), 'DateTime'),
                            'endDate' => new XML_RPC_Value(new Date(time() + (3600*24*3), 'DateTime')/*3 days into the future*/,
                            'impressions' => new XML_RPC_Value(10000, 'int'),
                            'clicks' => new XML_RPC_Value(-1, 'int'),
                            'priority' => new XML_RPC_Value(1, 'int'),
                            'weight' => new XML_RPC_Value(0, 'int')
                    ), 
                    'struct');

我正在使用 PEAR XML_RPC 包。此代码运行良好,没有产生任何错误,但是当我查看 OpenX 控制面板时,我的新活动没有开始或结束日期(它们设置为“立即开始”和“不过期”)。

日期需要采用什么格式才能让 OpenX 接受?

4

2 回答 2

2

编辑:查看http://pear.php.net/package/XML_RPC代码,您需要自己将日期编码为 ISO 8601 字符串:

试试这样:

$campaign = new XML_RPC_Value(
                array('advertiserId' => new XML_RPC_Value($advertiserID, 'int'),
                        'campaignName' => new XML_RPC_Value('My Banner', 'string'),
                        'startDate' => new XML_RPC_Value(date('c'), 'dateTime.iso8601'),
                        'endDate' => new XML_RPC_Value(date('c', time() + (3600*24*3)), 'dateTime.iso8601')/*3 days into the future*/,
                        'impressions' => new XML_RPC_Value(10000, 'int'),
                        'clicks' => new XML_RPC_Value(-1, 'int'),
                        'priority' => new XML_RPC_Value(1, 'int'),
                        'weight' => new XML_RPC_Value(0, 'int')
                ), 
                'struct');

(XML-RPC 日期类型是“dateTime.iso8601”,而不是“DateTime”。)

于 2010-09-07T18:57:21.910 回答
0

你读过这个吗?更改日期格式它应该能够告诉您它是如何设置的,然后您可以以这种方式输入或更改它以满足您的需要。

于 2010-09-07T09:29:30.087 回答