在mailchimp的php变量中插入双零(00)

在mailchimp的php变量中插入双零(00),php,mailchimp,Php,Mailchimp,好的,我正在尝试用mailchimp API安排一个活动,到目前为止,除了最后一个else if没有将00放在我的变量中之外,一切都正常。我知道php只会在数组中放入1个零,因此无法想出解决方法。救命啊!下面的代码用于记录日期,以iso 8601格式输入,然后我使用substr\u replace()将活动安排到mailchimp可用的下一个时间间隔(15,30,45,00) 我试图将它改为字符串“00”,但mailchimp没有安排它 $date_temp = new DateTime($da

好的,我正在尝试用mailchimp API安排一个活动,到目前为止,除了最后一个
else if
没有将
00
放在我的变量中之外,一切都正常。我知道php只会在数组中放入1个零,因此无法想出解决方法。救命啊!下面的代码用于记录日期,以iso 8601格式输入,然后我使用
substr\u replace()
将活动安排到mailchimp可用的下一个时间间隔(15,30,45,00)

我试图将它改为字符串“00”,但mailchimp没有安排它

$date_temp = new DateTime($date_debut);
$date_debut_iso = $date_temp->format('c');

$test = explode(':', $date_debut_iso);

//campaign has to be scheduled on :00, :15, :30, :45
if($test[1] >= 0 && $test[1] <= 15){
    $test[1] = 15;
}else if($test[1] >= 16 && $test[1] <= 30){
    $test[1] = 30;
}else if($test[1] >= 31 && $test[1] <= 45){
    $test[1] = 45;
}else if($test[1] >= 46 && $test[1] <= 59){
    $test[1] = 00;
}

$new_date = substr_replace($date_debut_iso, $test[1], 14, 2);
$date\u temp=新日期时间($date\u首次登场);
$date_defect_iso=$date_temp->format('c');
$test=爆炸(“:”,$date\u首秀\u iso);
//活动必须安排在:00,:15,:30,:45

如果($test[1]>=0&&$test[1]=16&&$test[1]=31&&$test[1]=46&&$test[1]我对设置
$test[1]='00';
不起作用的唯一猜测是,所有其他情况都会增加时间(或保持不变),而这种情况会减少时间,因为您将分钟设置为零而不改变小时

不过,您实际上不需要执行所有的字符串操作。您只需从DateTime对象获取分钟数并进行一些计算,然后使用
->format()
输出最终结果


计算基本上是这样的:如果分钟的剩余部分除以15是非零的,则将时间增加15-剩余分钟。对于>45的情况,这也将适当增加小时。

00
与使用数字时的
0
相同。如果需要
00
,则使用字符串。PD我认为你是对的,im将分钟设置为0而不更改小时,因此mailchimp无法正确安排时间,谢谢!
$date_temp = new DateTime($date_debut);

if ($offset = $date_temp->format('i') % 15) {
    $date_temp->modify('+' . (15 - $offset) . ' minutes');
};

$new_date = $date_temp->format('c');