在 mailchimp 的 php 变量中插入双零 (00)
Inserting double zeros (00) in a php variable for mailchimp
好的,所以我正在尝试使用 mailchimp API 安排一个活动,到目前为止一切正常,除了最后一个 else if
没有将 00
放入我的变量中。我知道 php 只会在数组中放入 1 个零,并且想不出解决这个问题的方法。帮助 !下面的代码用于获取日期,将其放入 iso 8601 格式,然后我使用 substr_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);
我需要最后一个 else if
来在我的数组 $test[1]
中存储 00
而不是 0
。字符串不起作用。
我对为什么设置 $test[1] = '00';
不起作用的唯一猜测是所有其他情况 增加 时间(或保持不变),而这种情况 减少 因为您将分钟设置为零而不更改小时。
不过,您实际上并不需要进行所有字符串操作。您可以从 DateTime 对象中获取分钟数并做一些数学运算,然后使用 ->format()
.
输出最终结果
$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');
计算基本上是:如果剩余分钟数除以 15 不为零,则将时间增加 15 - 剩余分钟数。对于 > 45 的情况,这也会适当增加小时数。
好的,所以我正在尝试使用 mailchimp API 安排一个活动,到目前为止一切正常,除了最后一个 else if
没有将 00
放入我的变量中。我知道 php 只会在数组中放入 1 个零,并且想不出解决这个问题的方法。帮助 !下面的代码用于获取日期,将其放入 iso 8601 格式,然后我使用 substr_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);
我需要最后一个 else if
来在我的数组 $test[1]
中存储 00
而不是 0
。字符串不起作用。
我对为什么设置 $test[1] = '00';
不起作用的唯一猜测是所有其他情况 增加 时间(或保持不变),而这种情况 减少 因为您将分钟设置为零而不更改小时。
不过,您实际上并不需要进行所有字符串操作。您可以从 DateTime 对象中获取分钟数并做一些数学运算,然后使用 ->format()
.
$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');
计算基本上是:如果剩余分钟数除以 15 不为零,则将时间增加 15 - 剩余分钟数。对于 > 45 的情况,这也会适当增加小时数。