【发布时间】:2021-07-11 13:08:25
【问题描述】:
我正在尝试找出一种根据当前时间更改值的方法,目前我正在使用以下代码在下订单时添加某些分钟。
$job_description = 'Order '.$order_id;
$order_created = $order->get_date_created()->format ('Y-m-d H:i:s');
$minutes_to_add = 170;
$order_created_obj = new DateTime($order_created);
$order_created_obj->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$job_pickup_datetime = $order_created_obj->format('Y-m-d H:i:s');
$minutes_to_add = 240;
$order_created_obj = new DateTime($order_created);
$order_created_obj->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$job_delivery_datetime = $order_created_obj->format('Y-m-d H:i:s');
这工作正常(除了 $minutes_to_add = 170 出于某种原因只增加了 30 分钟到当前时间,但我忍受它) 但是后来我发现需要根据当前时间(或主要是订单时间)将 $minutes_to_add 值更改为不同的值,我编写了以下代码并在 WooCommerce 上进行了测试,但它给出了严重错误并且没有传递订单详细信息。
// Pickup time
$current_time = get_current_time()->format ('H:i:s');
if ($current_time >= '14:30:00' && $current_time <= '17:00:00') {
$minutes_to_add = 100;
} elseif ($current_time >= '17:00:00' && $current_time < '18:00:00'){
$minutes_to_add = 250;
} elseif ($current_time >= '18:00:00' && $current_time < '19:00:00'){
$minutes_to_add = 300;
} else {
$minutes_to_add = 170;
}
$order_created_obj = new DateTime($order_created);
$order_created_obj->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$job_pickup_datetime = $order_created_obj->format('Y-m-d H:i:s');
// delivery time
$current_time = get_current_time()->format ('H:i:s');
if ($current_time >= '14:30:00' && $current_time <= '17:00:00') {
$minutes_to_add = 130;
} elseif ($current_time >= '17:00:00' && $current_time < '18:00:00'){
$minutes_to_add = 280;
} elseif ($current_time >= '18:00:00' && $current_time < '19:00:00'){
$minutes_to_add = 330;
} else {
$minutes_to_add = 200;
}
$order_created_obj = new DateTime($order_created);
$order_created_obj->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$job_delivery_datetime = $order_created_obj->format('Y-m-d H:i:s');
【问题讨论】:
-
您能否详细说明“不工作”。你期望什么结果,会发生什么?
-
我正在编辑一个现有的 WP 插件,它在外部传递信息,我的期望已经解释过了,我需要根据当前(或订单)时间在 $minutes_to_add 中添加几个“分钟”。我想添加 if 语句并检查当前时间并在此基础上添加分钟。我写的是使 API 崩溃并且没有任何外部信息。
-
如果它崩溃了,您可能需要检查服务器上的 PHP 错误日志。
-
我找到了解决方案,接下来会发布。谢谢
标签: php wordpress time timestamp