【发布时间】:2019-09-14 05:33:56
【问题描述】:
我已经创建了电子商务网站,它即将提供午餐和晚餐服务。我在这里提出问题/问题是因为我知道这里有很多可以帮助我的传说。我已经在网站上添加了包/计划部分。
1. Weekly
2. Monthly
这是订购产品的页面问题形式的截图:
我可以轻松计算每周价格,例如,如果产品价格 100 并且用户选择了每周计划,并且他选择了从周一到周六的天数(仅限一周中的 6 天),那么我们可以使用 6*100 = 600 轻松计算价格。
但是如何计算每月价格呢?
例如:如果用户选择了每月计划并选择每周 6 天,从周一到周六,或者任何他想选择的日子名称。然后他下订单。现在,
6 * 4 = 24 (6 days * 4 weeks)
24 * 100 = 2400 (days * product price)
但它只计算 4 周,而不是整月。我想计算整月。如果我检查当前月份是 30 天,那么 4 (weeks) + 2 days,如果当前月份是 31 天,那么 4 (weeks) + 3 days。看起来很简单,但它也很危险,因为如果 + 2 或 +3 天是用户在订购月包期间未选中的那些日子怎么办。
这是我的代码:
<?php
$pCartProducts = $pcart->getPlanCartProducts($userid);
?>
<tbody>
<?php
if($pCartProducts){
$finalPrice = 0;
while($pcPro = $pCartProducts->fetch_assoc()){
$planName = $pcPro['plan_name'];
?>
<tr>
<td data-title="Plan">
<?php echo $planName; ?>
</td>
<?php
$pro_price = $pcPro['pro_price'];
$plan_days = $pcPro['plan_days']; // if user selected 6 days in a week
$totaldays = $plan_days * 4; // 6 * 4 weeks = 24
// Calculating current month days
$month = date('m');
$year = date('Y');
$cal_days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
if($planName == 'Weekly'){
$total_price = $pro_price * $plan_days;
} elseif($planName == 'Monthly'){
if($cal_days == '30'){
$final_tdays = $totaldays + 2; // + 2 days
} elseif($cal_days == '31'){
$final_tdays = $totaldays + 3; // + 3 days
} elseif($cal_days == '29'){
$final_tdays = $totaldays + 1; // + 1 day
} elseif($cal_days == '28'){
$final_tdays = $totaldays; // normal
}
$total_price = $final_tdays * $pro_price; // final days * product price
}
?>
<td data-title="Price">
<span>Rs./<?php echo $total_price; ?></span>
</td>
</tr>
<?php } } ?>
</tbody>
有人可以帮我计算一周中选定日期的每月价格吗? 请帮帮我
【问题讨论】:
-
如果你这样做,每月的价格会有所不同,具体取决于一年中的哪个月份。每月定价可能会更好
(52 *$plan_days + 1) / 12 -
但这并不完美,可能是价格将与此创建,该价格将是额外价格或根据用户选择的天数可能是低价
-
除非您想计算每年每个月的确切价格,否则您需要做出妥协。
-
这样做有很多困难——这可能就是为什么有些服务会说一个月总是4周。
-
这里有 2 个选项,都取决于您对一个月的定义,1- 将其设为固定天数(在我的网站上我说月份 = 30 天)或2- 一个月就是一个月,这意味着如果今天是
2019-02-01,他的服务将在2019-03-01结束,这意味着只有28/29 天。我会看看我是否可以在答案中给你举个例子
标签: javascript php jquery date oop